зеркало из https://github.com/github/ruby.git
[ruby/yarp] fix: string escape char "\" at the end of a file
Previously this resulted in invalid memory access. Found by the fuzzer. https://github.com/ruby/yarp/commit/178862e2ca
This commit is contained in:
Родитель
476f38d62d
Коммит
6f8126faeb
|
@ -14,4 +14,5 @@ class FuzzerTest < Test::Unit::TestCase
|
|||
|
||||
snippet "incomplete global variable", "$"
|
||||
snippet "incomplete symbol", ":"
|
||||
snippet "incomplete escaped string", '"\\'
|
||||
end
|
||||
|
|
|
@ -7224,6 +7224,12 @@ parser_lex(yp_parser_t *parser) {
|
|||
breakpoint = yp_strpbrk(parser, breakpoint + 1, breakpoints, parser->end - (breakpoint + 1));
|
||||
break;
|
||||
case '\\': {
|
||||
// Check that we're not at the end of the file.
|
||||
if (breakpoint + 1 >= parser->end) {
|
||||
breakpoint = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
// If we hit escapes, then we need to treat the next token
|
||||
// literally. In this case we'll skip past the next character and
|
||||
// find the next breakpoint.
|
||||
|
|
Загрузка…
Ссылка в новой задаче