Input/output error when trying to access a file inside a mounted ZIP

Issue #67 closed
François Degros created an issue

A simple text file inside a mounted ZIP cannot be read. Its size and attributes cannot even be determined, although its name is visible. System calls such as lstat and openat on this file return error EIO (Input/output error).

$ fuse-zip -V
fuse-zip version: 0.7.0
libzip version: 1.7.1
FUSE library version: 2.9.8
fusermount version: 2.9.8
using FUSE kernel interface version 7.19

$ fuse-zip -r Hello.zip mnt/

$ ls -l mnt/
total 0
drwxr-xr-x. 3 root root 0 Jun 17 21:03 CUR
drwxrwxr-x. 2 root root 0 Jun 17 20:11 ROOT

$ ls -l mnt/CUR/
ls: cannot access 'mnt/CUR/Hello.txt': Input/output error
total 0
?????????? ? ? ? ?            ? Hello.txt

$ ls -l mnt/CUR/Hello.txt 
ls: cannot access 'mnt/CUR/Hello.txt': Input/output error

$ stat mnt/CUR/Hello.txt 
stat: cannot stat 'mnt/CUR/Hello.txt': Input/output error

$ cat mnt/CUR/Hello.txt 
cat: mnt/CUR/Hello.txt: Input/output error

Comments (8)

  1. Alexander Galanin repo owner

    Both archived files have strange content in “version made by” field in central directory file header: operating system is set to UNIX (3) but UNIX file mode in “external fiel attributes” have node type bits empty (0):

    Hi.txt (opsys: UNIX (3), mode1: 0000000, mode2: 0x0000)

    Hello.txt (opsys: UNIX (3), mode1: 0000600, mode2: 0x0000)

    I’ve fixed this by forcing regular file type for nodes with unspecified type bits.

  2. Log in to comment