diff options
author | Rich Felker <dalias@aerifal.cx> | 2015-02-11 01:37:01 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2015-02-11 01:37:01 -0500 |
commit | 594ffed82f4e6ee7da85e9c5da35e32946ae32c9 (patch) | |
tree | b8063074ad951fe03975e8fa3c4f3bf6bb59025b | |
parent | 700e08993c3f6a808773d56424aa7e633da13e2e (diff) | |
download | musl-594ffed82f4e6ee7da85e9c5da35e32946ae32c9.tar.gz musl-594ffed82f4e6ee7da85e9c5da35e32946ae32c9.tar.xz musl-594ffed82f4e6ee7da85e9c5da35e32946ae32c9.zip |
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.
-rw-r--r-- | src/misc/wordexp.c | 1 |
1 files changed, 1 insertions, 0 deletions
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; |