[git commit] standalone shell / prefer_applets: fix "exe" in comm fields

Denys Vlasenko vda.linux at googlemail.com
Sat Jul 29 00:19:01 UTC 2017


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

function                                             old     new   delta
main                                                  92     106     +14

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/appletlib.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/libbb/appletlib.c b/libbb/appletlib.c
index 7a1a7f0..fa28d43 100644
--- a/libbb/appletlib.c
+++ b/libbb/appletlib.c
@@ -34,6 +34,13 @@
 # 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
@@ -1056,6 +1063,17 @@ int main(int argc UNUSED_PARAM, char **argv)
 	if (applet_name[0] == '-')
 		applet_name++;
 	applet_name = bb_basename(applet_name);
+
+# if defined(__linux__)
+	/* If we are a result of execv("/proc/self/exe"), fix ugly comm of "exe" */
+	if (ENABLE_FEATURE_SH_STANDALONE
+	 || ENABLE_FEATURE_PREFER_APPLETS
+	 || !BB_MMU
+	) {
+		prctl(PR_SET_NAME, (long)applet_name, 0, 0, 0);
+	}
+# endif
+
 	parse_config_file(); /* ...maybe, if FEATURE_SUID_CONFIG */
 	run_applet_and_exit(applet_name, argv);
 


More information about the busybox-cvs mailing list