diff options
| author | kraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-08-27 15:02:32 +0000 |
|---|---|---|
| committer | kraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-08-27 15:02:32 +0000 |
| commit | 5eb3bbba5661c722aab3bf2037ddfe57031aae73 (patch) | |
| tree | 44e814ac04f10384b2f87986a2c2faa6b3f8e9a6 | |
| parent | 9f80b1ef05916ed865a70e58f44ace9bbe03ab4c (diff) | |
| download | busybox-w32-5eb3bbba5661c722aab3bf2037ddfe57031aae73.tar.gz busybox-w32-5eb3bbba5661c722aab3bf2037ddfe57031aae73.tar.bz2 busybox-w32-5eb3bbba5661c722aab3bf2037ddfe57031aae73.zip | |
Fix invocation of `-/bin/sh' (bug #1209).
git-svn-id: svn://busybox.net/trunk/busybox@3358 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -rw-r--r-- | Changelog | 1 | ||||
| -rw-r--r-- | applets/busybox.c | 12 | ||||
| -rw-r--r-- | busybox.c | 12 |
3 files changed, 13 insertions, 12 deletions
| @@ -17,6 +17,7 @@ | |||
| 17 | -- Optimized gzip.c, shrinking it be ~1.5k | 17 | -- Optimized gzip.c, shrinking it be ~1.5k |
| 18 | * Matt Kraai | 18 | * Matt Kraai |
| 19 | -- Fix sed s/[/]// handling (closes: #1208). | 19 | -- Fix sed s/[/]// handling (closes: #1208). |
| 20 | -- Fix `-/bin/sh' invocation (closes: #1209). | ||
| 20 | 21 | ||
| 21 | 22 | ||
| 22 | -Erik Andersen, --not yet released-- | 23 | -Erik Andersen, --not yet released-- |
diff --git a/applets/busybox.c b/applets/busybox.c index 7a220f7b0..33efb5d84 100644 --- a/applets/busybox.c +++ b/applets/busybox.c | |||
| @@ -69,16 +69,16 @@ int main(int argc, char **argv) | |||
| 69 | { | 69 | { |
| 70 | const char *s; | 70 | const char *s; |
| 71 | 71 | ||
| 72 | for (s = applet_name = argv[0]; *s != '\0';) { | 72 | applet_name = argv[0]; |
| 73 | |||
| 74 | if (applet_name[0] == '-') | ||
| 75 | applet_name++; | ||
| 76 | |||
| 77 | for (s = applet_name; *s != '\0';) { | ||
| 73 | if (*s++ == '/') | 78 | if (*s++ == '/') |
| 74 | applet_name = s; | 79 | applet_name = s; |
| 75 | } | 80 | } |
| 76 | 81 | ||
| 77 | /* Add in a special case hack for a leading hyphen */ | ||
| 78 | if (**argv == '-' && *(*argv+1)!= '-') { | ||
| 79 | applet_name = (*argv+1); | ||
| 80 | } | ||
| 81 | |||
| 82 | #ifdef BB_LOCALE_SUPPORT | 82 | #ifdef BB_LOCALE_SUPPORT |
| 83 | #ifdef BB_INIT | 83 | #ifdef BB_INIT |
| 84 | if(getpid()!=1) /* Do not set locale for `init' */ | 84 | if(getpid()!=1) /* Do not set locale for `init' */ |
| @@ -69,16 +69,16 @@ int main(int argc, char **argv) | |||
| 69 | { | 69 | { |
| 70 | const char *s; | 70 | const char *s; |
| 71 | 71 | ||
| 72 | for (s = applet_name = argv[0]; *s != '\0';) { | 72 | applet_name = argv[0]; |
| 73 | |||
| 74 | if (applet_name[0] == '-') | ||
| 75 | applet_name++; | ||
| 76 | |||
| 77 | for (s = applet_name; *s != '\0';) { | ||
| 73 | if (*s++ == '/') | 78 | if (*s++ == '/') |
| 74 | applet_name = s; | 79 | applet_name = s; |
| 75 | } | 80 | } |
| 76 | 81 | ||
| 77 | /* Add in a special case hack for a leading hyphen */ | ||
| 78 | if (**argv == '-' && *(*argv+1)!= '-') { | ||
| 79 | applet_name = (*argv+1); | ||
| 80 | } | ||
| 81 | |||
| 82 | #ifdef BB_LOCALE_SUPPORT | 82 | #ifdef BB_LOCALE_SUPPORT |
| 83 | #ifdef BB_INIT | 83 | #ifdef BB_INIT |
| 84 | if(getpid()!=1) /* Do not set locale for `init' */ | 84 | if(getpid()!=1) /* Do not set locale for `init' */ |
