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]) &&