]> granicus.if.org Git - re2c/commit
Fixed out of bounds read in lexer.
authorUlya Trofimovich <skvadrik@gmail.com>
Mon, 29 Oct 2018 23:00:50 +0000 (23:00 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Mon, 29 Oct 2018 23:00:50 +0000 (23:00 +0000)
commit44737d3792dcdcf0fb2279e76f3ce7a1add21ea5
tree1b6980bc3b1b41ac12f3326c13e37eccd9b4da38
parentae2104669be563e88c6506bceb24022236c32b74
Fixed out of bounds read in lexer.

The error was caused by assuming that a sequence of zeroes (used for
padding in YYFILL) cannot form a valid lexeme suffix. This is not the
case with strings, as they may contain arbitrary characters. The fix
is to manually loop over string characters in lexer, stopping at each
zero to check if it's the end of input.

Found by american fuzzy lop (thanks to Henri Salo).
re2c/bootstrap/src/ast/lex.cc
re2c/bootstrap/src/ast/lex_conf.cc
re2c/src/ast/lex.re
re2c/src/ast/scanner.h
re2c/test/american_fuzzy_lop/01.c [new file with mode: 0644]
re2c/test/american_fuzzy_lop/01.re [new file with mode: 0644]