aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-08-07 18:18:09 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-08-07 18:18:09 +0200
commit248a67fb75a0d2c98f4f9935b7bb9e11382b2c78 (patch)
treeeea88807a0b5d936d158ef7a62dfb051df174e96 /shell
parent316d38e25883c68e51533029dbab059ae0731de8 (diff)
downloadbusybox-w32-248a67fb75a0d2c98f4f9935b7bb9e11382b2c78.tar.gz
busybox-w32-248a67fb75a0d2c98f4f9935b7bb9e11382b2c78.tar.bz2
busybox-w32-248a67fb75a0d2c98f4f9935b7bb9e11382b2c78.zip
free,stat: make NOEXEC
pkill/pgrep/pidof uncovered another quirk: what about noexec's _process names_? Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c2
-rw-r--r--shell/hush.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c
index e8f3ed26b..0a323e957 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -7803,6 +7803,8 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) const char *cmd, char **argv, c
7803 while (*envp) 7803 while (*envp)
7804 putenv(*envp++); 7804 putenv(*envp++);
7805 popredir(/*drop:*/ 1); 7805 popredir(/*drop:*/ 1);
7806//TODO: prctl(PR_SET_NAME, (long)argv[0], 0, 0, 0);? [think pidof, pgrep, pkill]
7807//Rewrite /proc/PID/cmdline? (need to save argv0 and length at init for this to work!)
7806 run_applet_no_and_exit(applet_no, cmd, argv); 7808 run_applet_no_and_exit(applet_no, cmd, argv);
7807 } 7809 }
7808 /* re-exec ourselves with the new arguments */ 7810 /* re-exec ourselves with the new arguments */
diff --git a/shell/hush.c b/shell/hush.c
index bb80f422c..b4fe7146b 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -7387,6 +7387,8 @@ static NOINLINE void pseudo_exec_argv(nommu_save_t *nommu_save,
7387 /* Without this, "rm -i FILE" can't be ^C'ed: */ 7387 /* Without this, "rm -i FILE" can't be ^C'ed: */
7388 switch_off_special_sigs(G.special_sig_mask); 7388 switch_off_special_sigs(G.special_sig_mask);
7389 debug_printf_exec("running applet '%s'\n", argv[0]); 7389 debug_printf_exec("running applet '%s'\n", argv[0]);
7390//TODO: prctl(PR_SET_NAME, (long)argv[0], 0, 0, 0);? [think pidof, pgrep, pkill]
7391//Rewrite /proc/PID/cmdline? (need to save argv0 and length at init for this to work!)
7390 run_applet_no_and_exit(a, argv[0], argv); 7392 run_applet_no_and_exit(a, argv[0], argv);
7391 } 7393 }
7392# endif 7394# endif