diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2018-11-19 18:41:20 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-12-14 13:48:03 +0800 |
commit | 878514712c5d21f675c45d99d2f8a04098ea4a19 (patch) | |
tree | 3dfac919984b546e9d305ec4795644d62a27b41a | |
parent | eval: Use the correct expansion mode for fd redirection (diff) | |
download | dash-878514712c5d21f675c45d99d2f8a04098ea4a19.tar.gz dash-878514712c5d21f675c45d99d2f8a04098ea4a19.zip |
expand: Eat closing brace for length parameter expansion
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>
-rw-r--r-- | src/expand.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/expand.c b/src/expand.c index 856b7a9..af9cac9 100644 --- a/src/expand.c +++ b/src/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); |