summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog1
-rw-r--r--applets/busybox.c12
-rw-r--r--busybox.c12
3 files changed, 13 insertions, 12 deletions
diff --git a/Changelog b/Changelog
index 5e0f5fd..bd149b0 100644
--- 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--
diff --git a/applets/busybox.c b/applets/busybox.c
index 7a220f7..33efb5d 100644
--- a/applets/busybox.c
+++ b/applets/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' */
diff --git a/busybox.c b/busybox.c
index 7a220f7..33efb5d 100644
--- 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' */