aboutsummaryrefslogtreecommitdiffstats
path: root/main/unzip/10-unzip-handle-pkware-verify.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2015-02-08 13:21:02 +0200
committerTimo Teräs <timo.teras@iki.fi>2015-02-08 13:22:19 +0200
commit345ad0326ce0c2890b0980cb50b706e7de7d863f (patch)
treec18be7b3ef7b0cd6e27ba00d914264cd3205a1cc /main/unzip/10-unzip-handle-pkware-verify.patch
parentccbc6e837a6df9649026cc834f43001742fa1c40 (diff)
downloadaports-345ad0326ce0c2890b0980cb50b706e7de7d863f.tar.bz2
aports-345ad0326ce0c2890b0980cb50b706e7de7d863f.tar.xz
main/unzip: new aport
Info-ZIP unzip http://infozip.org/UnZip.html
Diffstat (limited to 'main/unzip/10-unzip-handle-pkware-verify.patch')
-rw-r--r--main/unzip/10-unzip-handle-pkware-verify.patch21
1 files changed, 21 insertions, 0 deletions
diff --git a/main/unzip/10-unzip-handle-pkware-verify.patch b/main/unzip/10-unzip-handle-pkware-verify.patch
new file mode 100644
index 0000000000..b373ce07dd
--- /dev/null
+++ b/main/unzip/10-unzip-handle-pkware-verify.patch
@@ -0,0 +1,21 @@
+From: Steven Schweda
+Subject: Handle the PKWare verification bit of internal attributes
+Bug-Debian: http://bugs.debian.org/630078
+X-Debian-version: 6.0-5
+
+--- a/process.c
++++ b/process.c
+@@ -1729,6 +1729,13 @@
+ else if (uO.L_flag > 1) /* let -LL force lower case for all names */
+ G.pInfo->lcflag = 1;
+
++ /* Handle the PKWare verification bit, bit 2 (0x0004) of internal
++ attributes. If this is set, then a verification checksum is in the
++ first 3 bytes of the external attributes. In this case all we can use
++ for setting file attributes is the last external attributes byte. */
++ if (G.crec.internal_file_attributes & 0x0004)
++ G.crec.external_file_attributes &= (ulg)0xff;
++
+ /* do Amigas (AMIGA_) also have volume labels? */
+ if (IS_VOLID(G.crec.external_file_attributes) &&
+ (G.pInfo->hostnum == FS_FAT_ || G.pInfo->hostnum == FS_HPFS_ ||