diff options
author | Markus Armbruster <armbru@redhat.com> | 2018-08-31 09:58:36 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2018-09-24 18:06:09 +0200 |
commit | 2a96042a8da60b625cc9dbbdab3b03cd7586e34f (patch) | |
tree | 6898e02ca090dea38418e31785f09b17c2d3faed /bsd-user/main.c | |
parent | d5a515738ee2dec0cdf11d8a14a09abae6c20571 (diff) |
json: Fix lexer for lookahead character beyond '\x7F'
The lexer fails to end a valid token when the lookahead character is
beyond '\x7F'. For instance, input
true\xC2\xA2
produces the tokens
JSON_ERROR true\xC2
JSON_ERROR \xA2
This should be
JSON_KEYWORD true
JSON_ERROR \xC2
JSON_ERROR \xA2
instead.
The culprit is
#define TERMINAL(state) [0 ... 0x7F] = (state)
It leaves [0x80..0xFF] zero, i.e. IN_ERROR. Has always been broken.
Fix it to initialize the complete array.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180831075841.13363-2-armbru@redhat.com>
Diffstat (limited to 'bsd-user/main.c')
0 files changed, 0 insertions, 0 deletions