summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko2009-08-20 03:38:58 +0200
committerDenys Vlasenko2009-08-20 03:38:58 +0200
commita67a9627d0ada5214d43d06a34387cd9604108c8 (patch)
tree5f227c2f71857e11636cebdd57f547332b137050 /shell
parentffc39202aad7858bbe4a894f0e81e7ec313b5478 (diff)
downloadbusybox-a67a9627d0ada5214d43d06a34387cd9604108c8.zip
busybox-a67a9627d0ada5214d43d06a34387cd9604108c8.tar.gz
hush: do not process options after non-option args
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r--shell/hush.c2
-rw-r--r--shell/hush_test/hush-misc/opts1.right2
-rwxr-xr-xshell/hush_test/hush-misc/opts1.tests5
3 files changed, 8 insertions, 1 deletions
diff --git a/shell/hush.c b/shell/hush.c
index 08e7f50..b71e1b6 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -6461,7 +6461,7 @@ int hush_main(int argc, char **argv)
/* http://www.opengroup.org/onlinepubs/9699919799/utilities/sh.html */
builtin_argc = 0;
while (1) {
- opt = getopt(argc, argv, "c:xins"
+ opt = getopt(argc, argv, "+c:xins"
#if !BB_MMU
"<:$:R:V:"
# if ENABLE_HUSH_FUNCTIONS
diff --git a/shell/hush_test/hush-misc/opts1.right b/shell/hush_test/hush-misc/opts1.right
new file mode 100644
index 0000000..4da7573
--- /dev/null
+++ b/shell/hush_test/hush-misc/opts1.right
@@ -0,0 +1,2 @@
+Param1: >-10qwertyuiop<
+Done
diff --git a/shell/hush_test/hush-misc/opts1.tests b/shell/hush_test/hush-misc/opts1.tests
new file mode 100755
index 0000000..45a23d6
--- /dev/null
+++ b/shell/hush_test/hush-misc/opts1.tests
@@ -0,0 +1,5 @@
+if test $# = 0; then
+ exec "$THIS_SH" $0 -10qwertyuiop
+fi
+echo "Param1: >$1<"
+echo Done