aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2018-11-19 18:41:20 +0800
committerBen Hutchings <ben@decadent.org.uk>2020-03-28 21:42:55 +0000
commit16419c03328ad90171240ed5f6ec0127117d43cd (patch)
tree3c0f1b62bd0f128d6fc2cbeb22e6af9dfffb83d1
parent60413cc28c9b0b423e89fefff476d39c1926d6da (diff)
downloadklibc-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.c1
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);