summaryrefslogtreecommitdiff
path: root/unzip/patches/05-fix-uid-gid-handling
diff options
context:
space:
mode:
Diffstat (limited to 'unzip/patches/05-fix-uid-gid-handling')
-rw-r--r--unzip/patches/05-fix-uid-gid-handling29
1 files changed, 29 insertions, 0 deletions
diff --git a/unzip/patches/05-fix-uid-gid-handling b/unzip/patches/05-fix-uid-gid-handling
new file mode 100644
index 0000000..3a30899
--- /dev/null
+++ b/unzip/patches/05-fix-uid-gid-handling
@@ -0,0 +1,29 @@
+From: sms
+Subject: Restore uid and gid information when requested
+Bug-Debian: http://bugs.debian.org/689212
+X-Debian-version: 6.0-8
+
+--- a/process.c
++++ b/process.c
+@@ -2904,7 +2904,7 @@
+ #ifdef IZ_HAVE_UXUIDGID
+ if (eb_len >= EB_UX3_MINLEN
+ && z_uidgid != NULL
+- && (*((EB_HEADSIZE + 0) + ef_buf) == 1)
++ && (*((EB_HEADSIZE + 0) + ef_buf) == 1))
+ /* only know about version 1 */
+ {
+ uch uid_size;
+@@ -2916,10 +2916,10 @@
+ flags &= ~0x0ff; /* ignore any previous UNIX field */
+
+ if ( read_ux3_value((EB_HEADSIZE + 2) + ef_buf,
+- uid_size, z_uidgid[0])
++ uid_size, &z_uidgid[0])
+ &&
+ read_ux3_value((EB_HEADSIZE + uid_size + 3) + ef_buf,
+- gid_size, z_uidgid[1]) )
++ gid_size, &z_uidgid[1]) )
+ {
+ flags |= EB_UX2_VALID; /* signal success */
+ }