1
0
mirror of https://github.com/termux/termux-packages synced 2024-06-17 22:27:06 +00:00
termux-packages/packages/unzip/bugfix-handle-pkware-verification-bit.patch
2022-08-09 23:00:42 +08:00

22 lines
935 B
Diff

From: "Steven M. Schweda" <sms@antinode.info>
Subject: Handle the PKWare verification bit of internal attributes
Bug-Debian: https://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_ ||