Package: openssh Followup-For: Bug #313317 Here is an update of my path to openssh 1:4.3p2-10, in debdiff format
-- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.18-4-686 (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash
diff -u openssh-4.3p2/session.c openssh-4.3p2/session.c --- openssh-4.3p2/session.c +++ openssh-4.3p2/session.c @@ -788,11 +788,11 @@ /* * Sets the value of the given variable in the environment. If the variable - * already exists, its value is overriden. + * already exists, its value is kept/overriden according to clobber. */ void -child_set_env(char ***envp, u_int *envsizep, const char *name, - const char *value) +child_set_env_safe(char ***envp, u_int *envsizep, const char *name, + const char *value, char clobber) { char **env; u_int envsize; @@ -818,7 +818,10 @@ for (i = 0; env[i]; i++) if (strncmp(env[i], name, namelen) == 0 && env[i][namelen] == '=') break; - if (env[i]) { + if (env[i] && !clobber) { + /* No use for this variable: already exists and no clobber */ + return; + } else if (env[i] && clobber) { /* Reuse the slot. */ xfree(env[i]); } else { @@ -841,6 +844,17 @@ } /* + * Sets the value of the given variable in the environment. If the variable + * already exists, its value is overriden. + */ +void +child_set_env(char ***envp, u_int *envsizep, const char *name, + const char *value) +{ + child_set_env_safe(envp,envsizep,name,value,1); +} + +/* * Reads environment variables from the given file and adds/overrides them * into the environment. If the file does not exist, this does nothing. * Otherwise, it must consist of empty lines, comments (line starts with '#') @@ -958,7 +972,7 @@ *var_val++ = '\0'; debug3("Copy environment: %s=%s", var_name, var_val); - child_set_env(env, envsize, var_name, var_val); + child_set_env_safe(env, envsize, var_name, var_val,0); xfree(var_name); } diff -u openssh-4.3p2/debian/changelog openssh-4.3p2/debian/changelog --- openssh-4.3p2/debian/changelog +++ openssh-4.3p2/debian/changelog @@ -1,3 +1,9 @@ +openssh (1:4.3p2-10.1) unstable; urgency=low + + * Apply patch so that client-sent environment overrides PAM-read environment + + -- Jean-Christophe Dubacq <[EMAIL PROTECTED]> Wed, 09 May 2007 10:22:49 +0200 + openssh (1:4.3p2-10) unstable; urgency=low * Multiply openssh-client-udeb's Installer-Menu-Item by 100.