Skip to content

Releases: MustardOS/vtree

vTree Gold v1.4.3

Choose a tag to compare

@antiKk antiKk released this 29 May 09:46

Security

  • diskinfo: replace popen("du -d 1 "%s" | sort -rn") with an in-process
    openat/fstatat directory walk. On-disk directory names were interpolated
    into a shell command, allowing command injection (e.g. a dir named
    "$(reboot)") when drilling into Disk Info. The walk sums actual usage
    (st_blocks*512), stays on one filesystem (du -x), never follows symlinks,
    and stays cancellable — also faster (no subprocess/pipe/parse).
  • lang: validate translation format strings at load time. tr() values are
    used as printf formats at 60+ sites; an untrusted .ini with %n or a wrong
    specifier count/type was undefined behaviour (memory write / over-read).
    Each value is now checked against the English baseline's argument
    signature; mismatched/unsafe entries fall back to English or the key.
    Rejects %n and * dynamic width outright. No call-site changes.

Data safety (editor saves)

  • hexview: save in place via pwrite instead of fopen("wb")+fwrite, which
    truncated files larger than the 16 MB window to the window. Bytes past
    the window are now preserved; errors and fsync are checked; modified flag
    cleared only on success. Added a "[first 16M]" header marker.
  • viewer: never overwrite the full file with a partially-loaded prefix.
    Files exceeding the cap (raised to 8192 lines / 2 MB) load view-only with
    a "[too large - view only]" banner (Viewer_TooLarge added to all 4 langs).
    Saves are now atomic (temp + fsync + rename), preserve permissions, check
    errors, and clear modified only on success.

Large files / 32-bit (armhf)

  • Makefile: add -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 so off_t/stat/
    fseeko/ftello are 64-bit on 32-bit targets (no-op on 64-bit). Required for

    2 GB files and so copy_file_range's loff_t* offsets match off_t.

  • viewer/hexview: fseek/ftell -> fseeko/ftello into off_t (correct size
    probe and truncation detection for >2 GB files).
  • fileop: do_cfr copy_file_range offsets are explicitly int64_t, so the
    kernel's 64-bit loff_t* write-back can never clobber a smaller stack slot,
    independent of the LFS flag.

Robustness / hardening

  • Add copy_str() (always NUL-terminates) and convert the non-terminating
    strncpy idiom across fileop/config/main/imgview/hexview/viewer/snake/lang.
    Fixes latent over-reads of untrusted data (filenames, config values,
    toast strings) and clears the -Wstringop-truncation class.
  • Makefile: release build adds -D_FORTIFY_SOURCE=2 -fstack-protector-strong.
  • format_size: 1024LL10241024 (explicit 64-bit, guards future TB tier).

Files: main.c, fileop.c, viewer.c, hexview.c, lang.c, config.c, imgview.c,
snake.c, vtree.h, Makefile, lang/{English,Spanish,Polish,Vietnamese}.ini

v1.4.1

Choose a tag to compare

@antiKk antiKk released this 18 May 11:10

You can now choose to always target the opposite pane for paste operations when in two-pane mode..
Additionally, with this setting disabled the default pane choice for paste operations will be the opposite pane. Previously it always defaulted to the Left pane.

v1.4

Choose a tag to compare

@antiKk antiKk released this 12 May 11:12

Added search to text editor.
Can now hold R1 / L1 to quickly Page Up / Page Down.

v1.3

Choose a tag to compare

@antiKk antiKk released this 30 Apr 10:11

Updated Disk Usage module to allow drilling into directories for more information.
Added file copy/move dialogue to indicate progress.

v1.2

Choose a tag to compare

@antiKk antiKk released this 26 Apr 02:47

What's Changed

  • Add spanish translation by @Hairo in #4
  • Improved Polish translation by @TheWalruzz in #6
  • Added command line argument option --config by @ImCoKeMaN in #5
  • Added Disk Usage page

v1.1

Choose a tag to compare

@antiKk antiKk released this 21 Apr 01:32

vTree Gold v1.1

  • Added Logo
  • Fixed PgUp/PgDn behaviour
  • Made footer theming more consistent
  • Reworked Cut/Copy UX
  • Fixed issues with files marked on both panels
  • Fixed path overflowing header
  • Added clarity around marked file clearing
  • Can long longer copy the '..' entry in file manager
  • Reworked Hexview logic
  • Added (toggleable) UI sounds

vTree Gold v1.0

Choose a tag to compare

@antiKk antiKk released this 20 Apr 10:09

● vTree Gold v1.0

A gamepad-driven twin-panel file manager for handheld devices. Navigate, copy, move, rename, and delete files - all buttons fully rebindable.

Includes:

  • Dual-pane file browser with marked-file operations
  • Text viewer with inline editing
  • Hex viewer with byte-level editing
  • Image viewer with zoom and pan
  • On-screen keyboard for renaming, paths, and text edits
  • Themeable UI (Dark + MustardOS presets, fully customisable)
  • English, Polish, and Vietnamese localisation
  • Built with SDL2 — runs on hopefully any Linux-based handheld!