From 878514712c5d21f675c45d99d2f8a04098ea4a19 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Mon, 19 Nov 2018 18:41:20 +0800 Subject: 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 Fixes: 3cd538634f71 ("expand: Do not reprocess data when...") Signed-off-by: Herbert Xu --- src/expand.c | 1 + 1 file changed, 1 insertion(+) 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); -- cgit 1.4.1