Package: sudo
Version: 1.6.8p7-1.3
Tags: +patch
Followup-For: Bug #354431

I've identified the problem: env_rebuild() in env.c didn't 
properly record the fact that it had already copied the PATH
and then scribbled the _PATH_DEFPATH over it. _PATH_DEFPATH 
is /usr/bin:/bin. 
This insertion was done without duplicate check, and 
the subsequent SECURE_PATH overrule applied only to the first listed
variable.

The problem applies to 1.6.8p12.
A patch is attached, which works for both versions (with a few lines
offset in p12).

Please note that the patch cleans up only the totally broken duplicate
path issue, and does not affect line 493 in env.c which still 
unconditionally overrides any PATH with SECURE_PATH. I still think
that this is a bug as it conflicts with the meaning of env_keep, but
unsure as to how to fix this more fundamental but minor issue cleanly.

regards
az

-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (980, 'testing'), (970, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.14
Locale: LANG=C, LC_CTYPE=de_AT (charmap=ISO-8859-1)

Versions of packages sudo depends on:
ii  libc6                       2.3.2.ds1-22 GNU C Library: Shared libraries an
ii  libpam-modules              0.76-22      Pluggable Authentication Modules f
ii  libpam0g                    0.76-22      Pluggable Authentication Modules l

-- no debconf information
--- env.c.old   2006-02-26 18:24:58.000000000 +1000
+++ env.c       2006-02-26 18:30:10.000000000 +1000
@@ -386,6 +386,10 @@
                        if (strncmp(*ep, "USER=", 5) == 0)
                            SET(didvar, DID_USER);
                        break;
+                  case 'P':
+                     if (strncmp("PATH=", *ep, 5) == 0)
+                        SET(didvar,DID_PATH);
+                     break;
                }
                insert_env(*ep, 0);
            } else {

Reply via email to