[git commit] libbb: simplify NOFORK/NOEXEC defines, move set_task_comm to libbb

Denys Vlasenko vda.linux at googlemail.com
Tue Aug 8 12:09:23 UTC 2017


commit: https://git.busybox.net/busybox/commit/?id=ddd1ee44436c2ec7e0125ca128c9a148bea8a2c0
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/appletlib.c          | 16 ----------------
 libbb/vfork_daemon_rexec.c | 33 ++++++++++++++++++++++++---------
 2 files changed, 24 insertions(+), 25 deletions(-)

diff --git a/libbb/appletlib.c b/libbb/appletlib.c
index 5b84920..cbca7ef 100644
--- a/libbb/appletlib.c
+++ b/libbb/appletlib.c
@@ -34,14 +34,6 @@
 # include <malloc.h> /* for mallopt */
 #endif
 
-#include <sys/prctl.h>
-#ifndef PR_SET_NAME
-#define PR_SET_NAME 15
-#endif
-#ifndef PR_GET_NAME
-#define PR_GET_NAME 16
-#endif
-
 /* Declare <applet>_main() */
 #define PROTOTYPES
 #include "applets.h"
@@ -911,14 +903,6 @@ int busybox_main(int argc UNUSED_PARAM, char **argv)
 }
 # endif
 
-#if defined(__linux__) && (NUM_APPLETS > 1)
-void FAST_FUNC set_task_comm(const char *comm)
-{
-	/* okay if too long (truncates) */
-	prctl(PR_SET_NAME, (long)comm, 0, 0, 0);
-}
-#endif
-
 # if NUM_APPLETS > 0
 void FAST_FUNC run_applet_no_and_exit(int applet_no, const char *name, char **argv)
 {
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c
index c96cd61..e55847f 100644
--- a/libbb/vfork_daemon_rexec.c
+++ b/libbb/vfork_daemon_rexec.c
@@ -14,14 +14,32 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
+#include <sys/prctl.h>
+#ifndef PR_SET_NAME
+#define PR_SET_NAME 15
+#endif
+#ifndef PR_GET_NAME
+#define PR_GET_NAME 16
+#endif
+
 #include "busybox.h" /* uses applet tables */
 #include "NUM_APPLETS.h"
 
+#define NOFORK_SUPPORT ((NUM_APPLETS > 1) && (ENABLE_FEATURE_PREFER_APPLETS || ENABLE_FEATURE_SH_NOFORK))
+#define NOEXEC_SUPPORT ((NUM_APPLETS > 1) && (ENABLE_FEATURE_PREFER_APPLETS || ENABLE_FEATURE_SH_STANDALONE))
+
+#if defined(__linux__) && (NUM_APPLETS > 1)
+void FAST_FUNC set_task_comm(const char *comm)
+{
+	/* okay if too long (truncates) */
+	prctl(PR_SET_NAME, (long)comm, 0, 0, 0);
+}
+#endif
+
 /*
- * NOFORK support
+ * NOFORK/NOEXEC support
  */
-#if ENABLE_FEATURE_PREFER_APPLETS \
- || ENABLE_FEATURE_SH_NOFORK
+#if NOFORK_SUPPORT
 static jmp_buf die_jmp;
 static void jump(void)
 {
@@ -109,12 +127,9 @@ int FAST_FUNC run_nofork_applet(int applet_no, char **argv)
 
 	return rc & 0xff; /* don't confuse people with "exitcodes" >255 */
 }
-#endif /* FEATURE_PREFER_APPLETS || FEATURE_SH_NOFORK */
+#endif
 
-/*
- * NOEXEC support
- */
-#if (NUM_APPLETS > 1) && (ENABLE_FEATURE_PREFER_APPLETS || ENABLE_FEATURE_SH_STANDALONE)
+#if NOEXEC_SUPPORT
 void FAST_FUNC run_noexec_applet_and_exit(int a, const char *name, char **argv)
 {
 	/* reset some state and run without execing */
@@ -212,7 +227,7 @@ int FAST_FUNC spawn_and_wait(char **argv)
 		}
 # endif
 	}
-#endif /* FEATURE_PREFER_APPLETS */
+#endif
 	rc = spawn(argv);
 	return wait4pid(rc);
 }


More information about the busybox-cvs mailing list