Преглед на файлове

* patch from Dmitry for bug #7604, fixing the CRC problems.

git-svn-id: trunk@15864 -
marco преди 15 години
родител
ревизия
7119ebd599
променени са 1 файла, в които са добавени 11 реда и са изтрити 1 реда
  1. 11 1
      packages/unzip/src/unzip51g.pp

+ 11 - 1
packages/unzip/src/unzip51g.pp

@@ -2410,8 +2410,18 @@ BEGIN
     originalcrc := b AND $FFFF;
     dumpbits ( 16 );
     needbits ( 16 );
-    originalcrc := ( b AND $FFFF ) SHL 16;
+    originalcrc := originalcrc OR LongWord(( b AND $FFFF ) SHL 16);
     dumpbits ( 16 );
+
+    IF originalcrc = $08074b50 THEN BEGIN
+      { skiping possible $08074b50 data descriptor signature. see PKWARE APPNOTE.txt }
+      needbits ( 16 );
+      originalcrc := b AND $FFFF;
+      dumpbits ( 16 );
+      needbits ( 16 );
+      originalcrc := originalcrc OR LongWord(( b AND $FFFF ) SHL 16);
+      dumpbits ( 16 );
+    END;
   END;
 
   close ( infile );