Commit d5932334 authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Luiz Capitulino
Browse files

json-lexer: fix escaped backslash in single-quoted string



This made the lexer wait for a closing *double* quote.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarAmos Kong <akong@redhat.com>
Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
parent 05dfb26c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -138,8 +138,8 @@ static const uint8_t json_lexer[][256] = {
        ['n'] =  IN_SQ_STRING,
        ['r'] =  IN_SQ_STRING,
        ['t'] =  IN_SQ_STRING,
        ['/'] = IN_DQ_STRING,
        ['\\'] = IN_DQ_STRING,
        ['/'] = IN_SQ_STRING,
        ['\\'] = IN_SQ_STRING,
        ['\''] = IN_SQ_STRING,
        ['\"'] = IN_SQ_STRING,
        ['u'] = IN_SQ_UCODE0,
+7 −0
Original line number Diff line number Diff line
@@ -45,6 +45,13 @@ static void escaped_string(void)
        { "\"single byte utf-8 \\u0020\"", "single byte utf-8  ", .skip = 1 },
        { "\"double byte utf-8 \\u00A2\"", "double byte utf-8 \xc2\xa2" },
        { "\"triple byte utf-8 \\u20AC\"", "triple byte utf-8 \xe2\x82\xac" },
        { "'\\b'", "\b", .skip = 1 },
        { "'\\f'", "\f", .skip = 1 },
        { "'\\n'", "\n", .skip = 1 },
        { "'\\r'", "\r", .skip = 1 },
        { "'\\t'", "\t", .skip = 1 },
        { "'\\/'", "/", .skip = 1 },
        { "'\\\\'", "\\", .skip = 1 },
        {}
    };