diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2018-11-19 18:41:20 +0800 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2020-03-28 21:42:55 +0000 |
commit | 16419c03328ad90171240ed5f6ec0127117d43cd (patch) | |
tree | 3c0f1b62bd0f128d6fc2cbeb22e6af9dfffb83d1 | |
parent | 60413cc28c9b0b423e89fefff476d39c1926d6da (diff) | |
download | klibc-16419c03328ad90171240ed5f6ec0127117d43cd.tar.gz |
[klibc] dash: expand: Eat closing brace for length parameter expansion
[ dash commit 878514712c5d21f675c45d99d2f8a04098ea4a19 ]
When we are doing VSLENGTH expansion, the closing brace is currently
not removed in evalvar. This causes the caller argstr to terminate
prematurely as it would interpret the closing brace as one that
belongs to a parameter expansion at the outer level.
This patch fixes it.
Reported-by: Martijn Dekker <martijn@inlv.org>
Fixes: 3cd538634f71 ("expand: Do not reprocess data when...")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | usr/dash/expand.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/usr/dash/expand.c b/usr/dash/expand.c index 25236c09697d1..20362cef82af7 100644 --- a/usr/dash/expand.c +++ b/usr/dash/expand.c @@ -745,6 +745,7 @@ again: varunset(p, var, 0, 0); if (subtype == VSLENGTH) { + p++; if (flag & EXP_DISCARD) return p; cvtnum(varlen > 0 ? varlen : 0, flag); |