fix wordexp not to read past end of string ending with lone backslash
authorRich Felker <dalias@aerifal.cx>
Mon, 10 Dec 2018 03:20:15 +0000 (22:20 -0500)
committerRich Felker <dalias@aerifal.cx>
Mon, 10 Dec 2018 03:20:15 +0000 (22:20 -0500)
src/misc/wordexp.c

index d123cf757daad53740a4855800eabb440e731ad4..db83a69f37d996aa2a9f61bde18a60c06a727505 100644 (file)
@@ -42,7 +42,7 @@ static int do_wordexp(const char *s, wordexp_t *we, int flags)
 
        if (flags & WRDE_NOCMD) for (i=0; s[i]; i++) switch (s[i]) {
        case '\\':
-               if (!sq) i++;
+               if (!sq && !s[++i]) return WRDE_SYNTAX;
                break;
        case '\'':
                if (!dq) sq^=1;