summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2012-01-16 17:45:58 -0800
committerMark Adler <madler@alumni.caltech.edu>2012-01-16 18:51:31 -0800
commite1f45fed541cf462f2c68fc70cad135b2f810708 (patch)
tree5d590e16a90c64c25dbbdb745a091ceaec2625ea /contrib
parent509c1d2860c82ceeae8a3e3a32ef21edc3afa447 (diff)
downloadzlib-e1f45fed541cf462f2c68fc70cad135b2f810708.tar.gz
zlib-e1f45fed541cf462f2c68fc70cad135b2f810708.tar.bz2
zlib-e1f45fed541cf462f2c68fc70cad135b2f810708.zip
Fix contrib/minizip/zip.c for 64-bit architectures [Dalsnes].
Diffstat (limited to 'contrib')
-rw-r--r--contrib/minizip/zip.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/contrib/minizip/zip.c b/contrib/minizip/zip.c
index 3c34fc8..4f76904 100644
--- a/contrib/minizip/zip.c
+++ b/contrib/minizip/zip.c
@@ -1710,7 +1710,7 @@ extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_s
1710 if (err==ZIP_OK) 1710 if (err==ZIP_OK)
1711 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */ 1711 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */
1712 1712
1713 if(uncompressed_size >= 0xffffffff) 1713 if(uncompressed_size >= 0xffffffff || compressed_size >= 0xffffffff )
1714 { 1714 {
1715 if(zi->ci.pos_zip64extrainfo > 0) 1715 if(zi->ci.pos_zip64extrainfo > 0)
1716 { 1716 {
@@ -1724,6 +1724,8 @@ extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_s
1724 if (err==ZIP_OK) /* uncompressed size, unknown */ 1724 if (err==ZIP_OK) /* uncompressed size, unknown */
1725 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8); 1725 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8);
1726 } 1726 }
1727 else
1728 err = ZIP_BADZIPFILE; // Caller passed zip64 = 0, so no room for zip64 info -> fatal
1727 } 1729 }
1728 else 1730 else
1729 { 1731 {
@@ -1852,7 +1854,7 @@ int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir,
1852 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4); 1854 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4);
1853 } 1855 }
1854 else 1856 else
1855 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4); 1857 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4);
1856 } 1858 }
1857 1859
1858 return err; 1860 return err;
@@ -1919,7 +1921,7 @@ extern int ZEXPORT zipClose (zipFile file, const char* global_comment)
1919 free_linkedlist(&(zi->central_dir)); 1921 free_linkedlist(&(zi->central_dir));
1920 1922
1921 pos = centraldir_pos_inzip - zi->add_position_when_writting_offset; 1923 pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
1922 if(pos >= 0xffffffff) 1924 if(pos >= 0xffffffff || zi->number_entry > 0xFFFF)
1923 { 1925 {
1924 ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream); 1926 ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream);
1925 Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip); 1927 Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);