ash: fix NOEXEC mode - we were forgetting to pass environment!
env: promote to NOEXEC hd: promote to NOEXEC, as hexdump is NOEXEC already
This commit is contained in:
@@ -7008,8 +7008,11 @@ tryexec(USE_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char *
|
||||
|
||||
#if ENABLE_FEATURE_SH_STANDALONE
|
||||
if (applet_no >= 0) {
|
||||
if (APPLET_IS_NOEXEC(applet_no))
|
||||
if (APPLET_IS_NOEXEC(applet_no)) {
|
||||
while (*envp)
|
||||
putenv(*envp++);
|
||||
run_applet_no_and_exit(applet_no, argv);
|
||||
}
|
||||
/* re-exec ourselves with the new arguments */
|
||||
execve(bb_busybox_exec_path, argv, envp);
|
||||
/* If they called chroot or otherwise made the binary no longer
|
||||
@@ -12094,7 +12097,7 @@ exportcmd(int argc UNUSED_PARAM, char **argv)
|
||||
char *name;
|
||||
const char *p;
|
||||
char **aptr;
|
||||
int flag = argv[0][0] == 'r'? VREADONLY : VEXPORT;
|
||||
int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT;
|
||||
|
||||
if (nextopt("p") != 'p') {
|
||||
aptr = argptr;
|
||||
|
2
shell/ash_test/ash-standalone/noexec_gets_no_env.right
Normal file
2
shell/ash_test/ash-standalone/noexec_gets_no_env.right
Normal file
@@ -0,0 +1,2 @@
|
||||
VAR7=VAL
|
||||
0
|
3
shell/ash_test/ash-standalone/noexec_gets_no_env.tests
Executable file
3
shell/ash_test/ash-standalone/noexec_gets_no_env.tests
Executable file
@@ -0,0 +1,3 @@
|
||||
export VAR7=VAL
|
||||
env | grep ^VAR7=
|
||||
echo $?
|
Reference in New Issue
Block a user