Init global context to toybox multiplexer early so error_exit() doesn't segfault trying to print current command name, and change TOYBOX_DEBUG+TOYBOX_SUID complaint about not having the suid bit set to warning rather than exit..
diff --git a/main.c b/main.c
index 0b0987a..4a9795c 100644
--- a/main.c
+++ b/main.c
@@ -71,7 +71,7 @@
if (!(which->flags & TOYFLAG_STAYROOT)) {
if (uid != euid) xsetuid(euid=uid);
- } else if (CFG_TOYBOX_DEBUG && uid) error_exit("Not installed suid root");
+ } else if (CFG_TOYBOX_DEBUG && uid) error_msg("Not installed suid root");
if ((which->flags & TOYFLAG_NEEDROOT) && euid) error_exit("Not root");
}
@@ -113,10 +113,10 @@
static char *toy_paths[]={"usr/","bin/","sbin/",0};
int i, len = 0;
+ toys.which = toy_list;
if (toys.argv[1]) {
if (toys.argv[1][0]!='-') {
toy_exec(toys.argv+1);
- toys.which = toy_list;
error_exit("Unknown command %s",toys.argv[1]);
}
}