diff options
author | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2011-04-25 14:57:46 +0000 |
---|---|---|
committer | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2011-04-25 14:57:46 +0000 |
commit | 43c4e65c661ac50a1644e458778fedd5361006ca (patch) | |
tree | 87bf65c2c5a5f46923adeddbcea41136d477dff2 /pkgs/tools/networking/dropbear | |
parent | e1a78aa1a0d9caf2727810c5796517dc75a0bf1e (diff) | |
download | nixlib-43c4e65c661ac50a1644e458778fedd5361006ca.tar nixlib-43c4e65c661ac50a1644e458778fedd5361006ca.tar.gz nixlib-43c4e65c661ac50a1644e458778fedd5361006ca.tar.bz2 nixlib-43c4e65c661ac50a1644e458778fedd5361006ca.tar.lz nixlib-43c4e65c661ac50a1644e458778fedd5361006ca.tar.xz nixlib-43c4e65c661ac50a1644e458778fedd5361006ca.tar.zst nixlib-43c4e65c661ac50a1644e458778fedd5361006ca.zip |
Now I patch dropbear properly for it to inherit the PATH.
svn path=/nixpkgs/trunk/; revision=26968
Diffstat (limited to 'pkgs/tools/networking/dropbear')
-rw-r--r-- | pkgs/tools/networking/dropbear/pass-path.patch | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/pkgs/tools/networking/dropbear/pass-path.patch b/pkgs/tools/networking/dropbear/pass-path.patch index d664b00de350..1e223e0ad64d 100644 --- a/pkgs/tools/networking/dropbear/pass-path.patch +++ b/pkgs/tools/networking/dropbear/pass-path.patch @@ -1,15 +1,31 @@ -Allow sessions to inherit the PATH from the parent dropbear. - diff --git a/svr-chansession.c b/svr-chansession.c -index 23dad8c..9af8e55 100644 +index 23dad8c..32cac13 100644 --- a/svr-chansession.c +++ b/svr-chansession.c -@@ -878,7 +878,7 @@ static void execchild(void *user_data) { +@@ -823,6 +823,7 @@ static void addchildpid(struct ChanSess *chansess, pid_t pid) { + static void execchild(void *user_data) { + struct ChanSess *chansess = user_data; + char *usershell = NULL; ++ const char *path = DEFAULT_PATH; + + /* with uClinux we'll have vfork()ed, so don't want to overwrite the + * hostkey. can't think of a workaround to clear it */ +@@ -835,6 +836,9 @@ static void execchild(void *user_data) { + reseedrandom(); + #endif + ++ if (getenv("PATH")) ++ path = getenv("PATH"); ++ + /* clear environment */ + /* if we're debugging using valgrind etc, we need to keep the LD_PRELOAD + * etc. This is hazardous, so should only be used for debugging. */ +@@ -878,7 +882,7 @@ static void execchild(void *user_data) { addnewvar("LOGNAME", ses.authstate.pw_name); addnewvar("HOME", ses.authstate.pw_dir); addnewvar("SHELL", get_user_shell()); - addnewvar("PATH", DEFAULT_PATH); -+ addnewvar("PATH", getenv("PATH")); ++ addnewvar("PATH", path); if (chansess->term != NULL) { addnewvar("TERM", chansess->term); } |