From e2063ac08b6d7a9b7049e41a399e639b738a6510 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 11 Feb 2015 01:37:01 -0500 Subject: fix bad character checking in wordexp the character sequence '$((' was incorrectly interpreted as the opening of arithmetic even within single-quoted contexts, thereby suppressing the checks for bad characters after the closing quote. presently bad character checking is only performed when the WRDE_NOCMD is used; this patch only corrects checking in that case. (cherry picked from commit 594ffed82f4e6ee7da85e9c5da35e32946ae32c9) --- src/misc/wordexp.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/misc/wordexp.c b/src/misc/wordexp.c index a5f1b658..db39b5b8 100644 --- a/src/misc/wordexp.c +++ b/src/misc/wordexp.c @@ -77,6 +77,7 @@ static int do_wordexp(const char *s, wordexp_t *we, int flags) if (!(sq|dq|np)) return WRDE_BADCHAR; break; case '$': + if (sq) break; if (s[i+1]=='(' && s[i+2]=='(') { i += 2; np += 2; -- cgit v1.2.1