From 50f5b3f226a4355beb4f0f3a28daa5987b04c2a4 Mon Sep 17 00:00:00 2001 From: Jon Meow <46229924+jonmeow@users.noreply.github.com> Date: Wed, 16 Feb 2022 10:10:58 -0800 Subject: [PATCH] Stop using fuzz input for filenames (#1078) --- toolchain/lexer/tokenized_buffer_fuzzer.cpp | 24 +-------------------- toolchain/parser/parse_tree_fuzzer.cpp | 22 +------------------ 2 files changed, 2 insertions(+), 44 deletions(-) diff --git a/toolchain/lexer/tokenized_buffer_fuzzer.cpp b/toolchain/lexer/tokenized_buffer_fuzzer.cpp index bf3f35d65695..3d54c7731562 100644 --- a/toolchain/lexer/tokenized_buffer_fuzzer.cpp +++ b/toolchain/lexer/tokenized_buffer_fuzzer.cpp @@ -16,28 +16,8 @@ namespace Carbon::Testing { // NOLINTNEXTLINE: Match the documented fuzzer entry point declaration style. extern "C" int LLVMFuzzerTestOneInput(const unsigned char* data, std::size_t size) { - // We need two bytes of data to compute a file name length. - if (size < 2) { - return 0; - } - uint16_t raw_filename_length; - std::memcpy(&raw_filename_length, data, 2); - data += 2; - size -= 2; - size_t filename_length = raw_filename_length; - - // We need enough data to populate this filename length. - if (size < filename_length) { - return 0; - } - llvm::StringRef filename(reinterpret_cast(data), - filename_length); - data += filename_length; - size -= filename_length; - - // The rest of the data is the source text. auto source = SourceBuffer::CreateFromText( - llvm::StringRef(reinterpret_cast(data), size), filename); + llvm::StringRef(reinterpret_cast(data), size)); auto buffer = TokenizedBuffer::Lex(source, NullDiagnosticConsumer()); if (buffer.HasErrors()) { @@ -50,11 +30,9 @@ extern "C" int LLVMFuzzerTestOneInput(const unsigned char* data, // token stream. for (TokenizedBuffer::Token token : buffer.Tokens()) { int line_number = buffer.GetLineNumber(token); - (void)line_number; CHECK(line_number > 0) << "Invalid line number!"; CHECK(line_number < INT_MAX) << "Invalid line number!"; int column_number = buffer.GetColumnNumber(token); - (void)column_number; CHECK(column_number > 0) << "Invalid line number!"; CHECK(column_number < INT_MAX) << "Invalid line number!"; } diff --git a/toolchain/parser/parse_tree_fuzzer.cpp b/toolchain/parser/parse_tree_fuzzer.cpp index a877abeb119b..744cca060da0 100644 --- a/toolchain/parser/parse_tree_fuzzer.cpp +++ b/toolchain/parser/parse_tree_fuzzer.cpp @@ -18,28 +18,8 @@ namespace Carbon::Testing { // NOLINTNEXTLINE: Match the documented fuzzer entry point declaration style. extern "C" int LLVMFuzzerTestOneInput(const unsigned char* data, std::size_t size) { - // We need two bytes of data to compute a file name length. - if (size < 2) { - return 0; - } - uint16_t raw_filename_length; - std::memcpy(&raw_filename_length, data, 2); - data += 2; - size -= 2; - std::size_t filename_length = raw_filename_length; - - // We need enough data to populate this filename length. - if (size < filename_length) { - return 0; - } - llvm::StringRef filename(reinterpret_cast(data), - filename_length); - data += filename_length; - size -= filename_length; - - // The rest of the data is the source text. auto source = SourceBuffer::CreateFromText( - llvm::StringRef(reinterpret_cast(data), size), filename); + llvm::StringRef(reinterpret_cast(data), size)); // Lex the input. auto tokens = TokenizedBuffer::Lex(source, NullDiagnosticConsumer());