[klibc] [klibc:update-dash] dash: [VAR] Initialise OPTIND after importing environment
klibc-bot for Herbert Xu
herbert at gondor.apana.org.au
Sat Mar 28 14:48:13 PDT 2020
Commit-ID: 285328db698e018ef91c9f04f59f25e3133d0984
Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=285328db698e018ef91c9f04f59f25e3133d0984
Author: Herbert Xu <herbert at gondor.apana.org.au>
AuthorDate: Fri, 23 Aug 2013 21:27:42 +1000
Committer: Ben Hutchings <ben at decadent.org.uk>
CommitDate: Sat, 28 Mar 2020 21:42:54 +0000
[klibc] dash: [VAR] Initialise OPTIND after importing environment
[ dash commit a14c418aee9d4ccd7cf888024e318b300173099f ]
On Sat, Mar 23, 2013 at 01:46:20AM +0000, Chris F.A. Johnson wrote:
>
> According to both the dash man page and the POSIX spec, "When the
> shell is invoked, OPTIND is initialized to 1."
>
> However, it actually takes the value of the environment variable
> if it exists:
>
> $ OPTIND=4 dash -c 'echo "$OPTIND"'
> 4
> $ OPTIND=4 bash -c 'echo "$OPTIND"'
> 1
> $ OPTIND=4 ksh -c 'echo "$OPTIND"'
> 1
> $ OPTIND=4 ksh93 -c 'echo "$OPTIND"'
> 1
This patch fixes this by initialising OPTIND after importing the
environment.
Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/dash/var.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/usr/dash/var.c b/usr/dash/var.c
index c35e925e..fa248544 100644
--- a/usr/dash/var.c
+++ b/usr/dash/var.c
@@ -142,6 +142,8 @@ INIT {
}
}
+ setvarint("OPTIND", 1, 0);
+
fmtstr(ppid + 5, sizeof(ppid) - 5, "%ld", (long) getppid());
setvareq(ppid, VTEXTFIXED);
More information about the klibc
mailing list