소스 검색

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.
Rich Felker 10 년 전
부모
커밋
594ffed82f
1개의 변경된 파일1개의 추가작업 그리고 0개의 파일을 삭제
  1. 1 0
      src/misc/wordexp.c

+ 1 - 0
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;