Fix invocation of `-/bin/sh' (bug #1209).
authorMatt Kraai <kraai@debian.org>
Mon, 27 Aug 2001 15:02:32 +0000 (15:02 -0000)
committerMatt Kraai <kraai@debian.org>
Mon, 27 Aug 2001 15:02:32 +0000 (15:02 -0000)
Changelog
applets/busybox.c
busybox.c

index 5e0f5fd4bb2bae3b4977a62dfe95fe62bf5c3291..bd149b07bfefaf429ee129ae5d2c57a5851f0fee 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -17,6 +17,7 @@
            -- Optimized gzip.c, shrinking it be ~1.5k
        * Matt Kraai
            -- Fix sed s/[/]// handling (closes: #1208).
+           -- Fix `-/bin/sh' invocation (closes: #1209).
 
 
         -Erik Andersen, --not yet released--
index 7a220f7b04dc96c0c6c3ff864c85b3bb07ac3dff..33efb5d846c422da63029e3da74368552495493c 100644 (file)
@@ -69,16 +69,16 @@ int main(int argc, char **argv)
 {
        const char *s;
 
-       for (s = applet_name = argv[0]; *s != '\0';) {
+       applet_name = argv[0];
+
+       if (applet_name[0] == '-')
+               applet_name++;
+
+       for (s = applet_name; *s != '\0';) {
                if (*s++ == '/')
                        applet_name = s;
        }
 
-       /* Add in a special case hack for a leading hyphen */
-       if (**argv == '-' && *(*argv+1)!= '-') {
-               applet_name = (*argv+1);
-       }
-
 #ifdef BB_LOCALE_SUPPORT 
 #ifdef BB_INIT
        if(getpid()!=1) /* Do not set locale for `init' */
index 7a220f7b04dc96c0c6c3ff864c85b3bb07ac3dff..33efb5d846c422da63029e3da74368552495493c 100644 (file)
--- a/busybox.c
+++ b/busybox.c
@@ -69,16 +69,16 @@ int main(int argc, char **argv)
 {
        const char *s;
 
-       for (s = applet_name = argv[0]; *s != '\0';) {
+       applet_name = argv[0];
+
+       if (applet_name[0] == '-')
+               applet_name++;
+
+       for (s = applet_name; *s != '\0';) {
                if (*s++ == '/')
                        applet_name = s;
        }
 
-       /* Add in a special case hack for a leading hyphen */
-       if (**argv == '-' && *(*argv+1)!= '-') {
-               applet_name = (*argv+1);
-       }
-
 #ifdef BB_LOCALE_SUPPORT 
 #ifdef BB_INIT
        if(getpid()!=1) /* Do not set locale for `init' */