Backport from devbranch: stable-1.0
authorRyan C. Gordon <icculus@icculus.org>
Sat, 05 May 2007 05:53:03 +0000
branchstable-1.0
changeset 896 0895ab155ef1
parent 883 56e2e76653a5
child 900 c5172fa2c5e6
Backport from devbranch: Fixed zip archiver: could do bogus seek if a small, non-zip file got put through isArchive().
CHANGELOG
archivers/zip.c
--- a/CHANGELOG	Tue Apr 03 00:58:32 2007 +0000
+++ b/CHANGELOG	Sat May 05 05:53:03 2007 +0000
@@ -4,6 +4,8 @@
 
 -- stuff in the stable-1.0 branch, backported from 2.0.0 dev branch, etc ---
 
+05052007 - Fixed zip archiver: could do bogus seek if a small, non-zip file
+           got put through isArchive().
 04022007 - Fixed Doxygen comment.
 03312007 - Moved DIR archiver to start of the list, so we don't have to have
            every other archiver fail to open a directory as a file before
--- a/archivers/zip.c	Tue Apr 03 00:58:32 2007 +0000
+++ b/archivers/zip.c	Sat May 05 05:53:03 2007 +0000
@@ -489,6 +489,8 @@
             break;
 
         filepos -= (maxread - 4);
+        if (filepos < 0)
+            filepos = 0;
     } /* while */
 
     BAIL_IF_MACRO(!found, ERR_NOT_AN_ARCHIVE, -1);