aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/rm.c5
-rw-r--r--coreutils/seq.c5
-rw-r--r--coreutils/usleep.c7
-rw-r--r--coreutils/yes.c3
4 files changed, 15 insertions, 5 deletions
diff --git a/coreutils/rm.c b/coreutils/rm.c
index f91c94570..5e4acab8c 100644
--- a/coreutils/rm.c
+++ b/coreutils/rm.c
@@ -16,7 +16,8 @@
//config: help
//config: rm is used to remove files or directories.
-//applet:IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
+//applet:IF_RM(APPLET_NOEXEC(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
+/* was NOFORK, but then "rm -i FILE" can't be ^C'ed if run by hush */
//kbuild:lib-$(CONFIG_RM) += rm.o
@@ -36,7 +37,7 @@
#include "libbb.h"
-/* This is a NOFORK applet. Be very careful! */
+/* This is a NOEXEC applet. Be very careful! */
int rm_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int rm_main(int argc UNUSED_PARAM, char **argv)
diff --git a/coreutils/seq.c b/coreutils/seq.c
index f36dbb4ec..c26ff06b9 100644
--- a/coreutils/seq.c
+++ b/coreutils/seq.c
@@ -12,7 +12,8 @@
//config: help
//config: print a sequence of numbers
-//applet:IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq))
+//applet:IF_SEQ(APPLET_NOEXEC(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq))
+/* was NOFORK, but then "seq 1 999999999" can't be ^C'ed if run by hush */
//kbuild:lib-$(CONFIG_SEQ) += seq.o
@@ -26,7 +27,7 @@
#include "libbb.h"
-/* This is a NOFORK applet. Be very careful! */
+/* This is a NOEXEC applet. Be very careful! */
int seq_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int seq_main(int argc, char **argv)
diff --git a/coreutils/usleep.c b/coreutils/usleep.c
index 7c25aada1..684ab781b 100644
--- a/coreutils/usleep.c
+++ b/coreutils/usleep.c
@@ -38,6 +38,13 @@ int usleep_main(int argc UNUSED_PARAM, char **argv)
bb_show_usage();
}
+ /* Safe wrt NOFORK? (noforks are not allowed to run for
+ * a long time). Try "usleep 99999999" + ^C + "echo $?"
+ * in hush with FEATURE_SH_NOFORK=y.
+ * At least on uclibc, usleep() thanslates to nanosleep()
+ * which returns early on any signal (even caught one),
+ * and uclibc does not loop back on EINTR.
+ */
usleep(xatou(argv[1]));
return EXIT_SUCCESS;
diff --git a/coreutils/yes.c b/coreutils/yes.c
index ea35d146c..c244bfe10 100644
--- a/coreutils/yes.c
+++ b/coreutils/yes.c
@@ -17,7 +17,8 @@
//config: yes is used to repeatedly output a specific string, or
//config: the default string 'y'.
-//applet:IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
+//applet:IF_YES(APPLET_NOEXEC(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
+/* was NOFORK, but then yes can't be ^C'ed if run by hush */
//kbuild:lib-$(CONFIG_YES) += yes.o