fuse-zip won't handle files over 2**32 bytes

Issue #57 invalid
Barry Carter created an issue
> fuse-zip --version
fuse-zip version: 0.3.2
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19

If a zip file contains a file that is larger than 2^32 bytes, the file will
show as being 2^32-1 bytes in size, and only the first 2^32-1 bytes are
accessible.

This is not a purely theoretical issue since some SRTM3 GIS files have
zipped files that are larger than 5.3 GB

Comments (7)

  1. Barry Carter reporter

    The attached file, when unzipped, consists of 5 billion copies of the ASC character 0. It’s only about 4.9MB zipped.

    I am using a 64-bit system

    Unzip will unzip it fine, but if you use fuse-zip to mount it, the resulting directory will show one file (called zipme) with a size of 4294967295 bytes, exactly one byte under 2^32

  2. Alexander Galanin repo owner

    I am unable to reproduce this bug using attached file. fuse-zip 0.6.0 + libzip 1.1.2 works well, fuse-zip 0.3.2 + libzip 1.1.2 works well too.

    What version of libzip are you using?

  3. Alexander Galanin repo owner
    > fuse-zip --version
    fuse-zip version: 0.3.2
    FUSE library version: 2.9.2
    fusermount version: 2.9.2
    using FUSE kernel interface version 7.19
    

    If a zip file contains a file that is larger than 2^32 bytes, the file will
    show as being 2^32-1 bytes in size, and only the first 2^32-1 bytes are
    accessible.

    This is not a purely theoretical issue since some SRTM3 GIS files have
    zipped files that are larger than 5.3 GB

  4. Barry Carter reporter

    My apologies for the delay in getting back to you. I wasn't sure how to find my libzip version, but ultimately tried yum info libzip to get:

    Installed Packages

    Name : libzip
    Arch : x86_64
    Version : 0.10.1
    Release : 8.el7
    Size : 104 k
    Repo : installed
    From repo : base
    Summary : C library for reading, creating, and modifying zip archives
    URL : http://www.nih.at/libzip/index.html
    License : BSD
    Description : libzip is a C library for reading, creating, and modifying zip
    : archives. Files can be added from data buffers, files, or
    : compressed data copied directly from other zip archives. Changes
    : made without closing the archive can be reverted. The API is
    : documented by man pages.

    Since the latest version is 1.5.2, that probably explains the issue. I may try upgrading libzip on my system and will report the results if I do so. Please feel free to close the issue.

    Note the version of unzip I have (which does correctly unzip the file) is:

    Installed Packages
    Name : unzip
    Arch : x86_64
    Version : 6.0
    Release : 16.el7
    Size : 365 k
    Repo : installed
    From repo : base
    Summary : A utility for unpacking zip files
    URL : http://www.info-zip.org/UnZip.html
    License : BSD
    Description : The unzip utility is used to list, test, or extract files from a
    : zip archive. Zip archives are commonly found on MS-DOS systems.
    : The zip utility, included in the zip package, creates zip
    : archives. Zip and unzip are both compatible with archives created
    : by PKWARE(R)'s PKZIP for MS-DOS, but the programs' options and
    : default behaviors do differ in some respects.
    :
    : Install the unzip package if you need to list, test or extract
    : files from a zip archive.

    but it might be using its own libzip or something?

  5. Alexander Galanin repo owner

    As I see in libzip’s changelog, ZIP64 support has been added in version 0.11. So you need to upgrade libzip to support your achive files.

    unzip is a standalone utility that does not use libzip at all.

  6. Log in to comment