# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: package/*/unzip/unzip-6.0-timestamp.patch # Copyright (C) 2022 The T2 SDE Project # # This Copyright note is generated by scripts/Create-CopyPatch, # more information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License version 2 as used by the T2 SDE. # --- T2-COPYRIGHT-NOTE-END --- From: "Steven M. Schweda" Subject: Do not ignore extra fields containing Unix Timestamps Bug-Debian: https://bugs.debian.org/842993 X-Debian-version: 6.0-21 --- a/process.c +++ b/process.c @@ -2914,10 +2914,13 @@ break; case EF_IZUNIX2: - if (have_new_type_eb == 0) { - flags &= ~0x0ff; /* ignore any previous IZUNIX field */ + if (have_new_type_eb == 0) { /* (< 1) */ have_new_type_eb = 1; } + if (have_new_type_eb <= 1) { + /* Ignore any prior (EF_IZUNIX/EF_PKUNIX) UID/GID. */ + flags &= 0x0ff; + } #ifdef IZ_HAVE_UXUIDGID if (have_new_type_eb > 1) break; /* IZUNIX3 overrides IZUNIX2 e.f. block ! */ @@ -2933,6 +2936,8 @@ /* new 3rd generation Unix ef */ have_new_type_eb = 2; + /* Ignore any prior EF_IZUNIX/EF_PKUNIX/EF_IZUNIX2 UID/GID. */ + flags &= 0x0ff; /* Version 1 byte version of this extra field, currently 1 UIDSize 1 byte Size of UID field @@ -2953,8 +2958,6 @@ uid_size = *((EB_HEADSIZE + 1) + ef_buf); gid_size = *((EB_HEADSIZE + uid_size + 2) + ef_buf); - flags &= ~0x0ff; /* ignore any previous UNIX field */ - if ( read_ux3_value((EB_HEADSIZE + 2) + ef_buf, uid_size, &z_uidgid[0]) &&