diff options
author | Igor Pashev <igor.pashev@nexenta.com> | 2013-04-17 16:22:04 +0400 |
---|---|---|
committer | Igor Pashev <igor.pashev@nexenta.com> | 2013-04-17 16:22:04 +0400 |
commit | 442b6bb69f03a09fa246f1278e7d5aa9f0da955c (patch) | |
tree | 509f842e734c60c51add3f8fd69b1b94bf6b19f7 /unzip/patches/04-handle-pkware-verification-bit | |
parent | b24bf5235b902a703ab77c9d4b47e11e173482b4 (diff) | |
download | cibs-pkgs-442b6bb69f03a09fa246f1278e7d5aa9f0da955c.tar.gz |
UnZip 6.0
Diffstat (limited to 'unzip/patches/04-handle-pkware-verification-bit')
-rw-r--r-- | unzip/patches/04-handle-pkware-verification-bit | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/unzip/patches/04-handle-pkware-verification-bit b/unzip/patches/04-handle-pkware-verification-bit new file mode 100644 index 0000000..b373ce0 --- /dev/null +++ b/unzip/patches/04-handle-pkware-verification-bit @@ -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_ || |