Now I patch dropbear properly for it to inherit the PATH.
svn path=/nixpkgs/trunk/; revision=26968
This commit is contained in:
parent
e1a78aa1a0
commit
43c4e65c66
1 changed files with 21 additions and 5 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue