summary refs log tree commit diff
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2011-04-25 14:57:46 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2011-04-25 14:57:46 +0000
commit43c4e65c661ac50a1644e458778fedd5361006ca (patch)
tree87bf65c2c5a5f46923adeddbcea41136d477dff2
parente1a78aa1a0d9caf2727810c5796517dc75a0bf1e (diff)
downloadnixlib-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
-rw-r--r--pkgs/tools/networking/dropbear/pass-path.patch26
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);
  	}