1826f079d3
The tar crate returns an empty iterator (without erroring) for
both zero-byte files and files that aren't valid tar archives.
TarVfs::open() previously succeeded in both cases, producing an
'unbrowsable' archive the user couldn't navigate.
Fix:
TarVfs::open() now checks entries.is_empty() after list() and
returns VfsError::Other('empty tar archive') when empty. This
covers both truly empty files (corrupt/truncated) and garbage
bytes (e.g., text mistakenly saved with .tar extension).
Tests (2 new in vfs::tar::tests):
- tar_vfs_open_empty_file_errors
- tar_vfs_open_garbage_bytes_errors
Total: 1281 passing (was 1279; +2 new).