summaryrefslogtreecommitdiff
path: root/applets/busybox.c
diff options
context:
space:
mode:
authorDenis Vlasenko2007-03-24 12:11:17 +0000
committerDenis Vlasenko2007-03-24 12:11:17 +0000
commit9067f13be067f39f6c8586926b190b7dee0def3d (patch)
treeff0a10f5f81fa0e1e719691c147309a9cc9bef46 /applets/busybox.c
parent1b6fa4c57ced2ae89f51bdc073410c4be5384007 (diff)
downloadbusybox-9067f13be067f39f6c8586926b190b7dee0def3d.zip
busybox-9067f13be067f39f6c8586926b190b7dee0def3d.tar.gz
NOMMU re-exec trick shuld not depend on existence of "don't daemonize"
option for every affected applet (and dnsd, for example, don't have one). Thus rework re-exec support to not require it. Code got smaller too.
Diffstat (limited to 'applets/busybox.c')
-rw-r--r--applets/busybox.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/applets/busybox.c b/applets/busybox.c
index 0387d79..5334827 100644
--- a/applets/busybox.c
+++ b/applets/busybox.c
@@ -7,6 +7,7 @@
#include "busybox.h"
const char *applet_name ATTRIBUTE_EXTERNALLY_VISIBLE;
+smallint re_execed;
#ifdef CONFIG_FEATURE_INSTALLER
/*
@@ -59,6 +60,12 @@ int main(int argc, char **argv)
{
const char *s;
+ /* NOMMU re-exec trick sets high-order bit in first byte of name */
+ if (argv[0][0] & 0x80) {
+ re_execed = 1;
+ argv[0][0] &= 0x7f;
+ }
+
applet_name = argv[0];
if (*applet_name == '-')
applet_name++;