From 26d11383e548dccd7493079daeb9626c059aa87f Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Mon, 13 Nov 2023 18:14:54 -0500 Subject: [PATCH] [ruby/prism] fix: float suffix at end of file Found by fuzzing. https://github.com/ruby/prism/commit/d77d4fe2b7 --- prism/prism.c | 2 +- test/prism/fuzzer_test.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/prism/prism.c b/prism/prism.c index 41dca4cb65..15e550d245 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -6338,7 +6338,7 @@ lex_optional_float_suffix(pm_parser_t *parser, bool* seen_e) { (void) (match(parser, '+') || match(parser, '-')); *seen_e = true; - if (pm_char_is_decimal_digit(*parser->current.end)) { + if (pm_char_is_decimal_digit(peek(parser))) { parser->current.end++; parser->current.end += pm_strspn_decimal_number_validate(parser, parser->current.end); type = PM_TOKEN_FLOAT; diff --git a/test/prism/fuzzer_test.rb b/test/prism/fuzzer_test.rb index 0aabd56242..ac112f897a 100644 --- a/test/prism/fuzzer_test.rb +++ b/test/prism/fuzzer_test.rb @@ -35,6 +35,7 @@ module Prism snippet "escaped unicode at end of file 7", '"\\u3' snippet "escaped unicode at end of file 8", '"\\u33' snippet "escaped unicode at end of file 9", '"\\u333' + snippet "float suffix at end of file", "1e" snippet "statements node with multiple heredocs", <<~EOF for <