From c56c4affb25a3ea4797e0ff29ad3c81718d8ef9e Mon Sep 17 00:00:00 2001 From: Phil Turnbull Date: Mon, 21 May 2018 10:48:19 -0700 Subject: [PATCH 1/4] Use ts_tree_root_node in fuzz driver --- test/fuzz/fuzzer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fuzz/fuzzer.cc b/test/fuzz/fuzzer.cc index 570dfa7e..6fe1e4cb 100644 --- a/test/fuzz/fuzzer.cc +++ b/test/fuzz/fuzzer.cc @@ -17,7 +17,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { ts_parser_halt_on_error(parser, TS_HALT_ON_ERROR); TSTree *tree = ts_parser_parse_string(parser, NULL, str, size); - TSNode root_node = ts_document_root_node(tree); + TSNode root_node = ts_tree_root_node(tree); ts_tree_delete(tree); ts_parser_delete(parser); From c41841f4e95a0769f688f6b715cdc7db2fbad039 Mon Sep 17 00:00:00 2001 From: Phil Turnbull Date: Mon, 21 May 2018 12:49:23 -0700 Subject: [PATCH 2/4] Assert ts_parser_set_language in fuzz driver --- test/fuzz/fuzzer.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/fuzz/fuzzer.cc b/test/fuzz/fuzzer.cc index 6fe1e4cb..5c247556 100644 --- a/test/fuzz/fuzzer.cc +++ b/test/fuzz/fuzzer.cc @@ -1,4 +1,5 @@ #include +#include #include "tree_sitter/runtime.h" void test_log(void *payload, TSLogType type, const char *string) { } @@ -13,7 +14,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { const char *str = reinterpret_cast(data); TSParser *parser = ts_parser_new(); - ts_parser_set_language(parser, TS_LANG()); + + // This can fail if the language version doesn't match the runtime version + bool language_ok = ts_parser_set_language(parser, TS_LANG()); + assert(language_ok); + ts_parser_halt_on_error(parser, TS_HALT_ON_ERROR); TSTree *tree = ts_parser_parse_string(parser, NULL, str, size); From 8f31a5f02aa10f817a0dbd0fbfd50c0683c73819 Mon Sep 17 00:00:00 2001 From: Phil Turnbull Date: Tue, 22 May 2018 09:01:59 -0700 Subject: [PATCH 3/4] Remove unused import --- test/fuzz/fuzzer.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/test/fuzz/fuzzer.cc b/test/fuzz/fuzzer.cc index 5c247556..3727c763 100644 --- a/test/fuzz/fuzzer.cc +++ b/test/fuzz/fuzzer.cc @@ -1,4 +1,3 @@ -#include #include #include "tree_sitter/runtime.h" From d7bea0a6f63ec5c66ad7a9f434a9b6dfdf8d9bc5 Mon Sep 17 00:00:00 2001 From: Phil Turnbull Date: Tue, 22 May 2018 09:05:02 -0700 Subject: [PATCH 4/4] Remove unused logger --- test/fuzz/fuzzer.cc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test/fuzz/fuzzer.cc b/test/fuzz/fuzzer.cc index 3727c763..2ed7683f 100644 --- a/test/fuzz/fuzzer.cc +++ b/test/fuzz/fuzzer.cc @@ -1,12 +1,6 @@ #include #include "tree_sitter/runtime.h" -void test_log(void *payload, TSLogType type, const char *string) { } - -TSLogger logger = { - .log = test_log, -}; - extern "C" const TSLanguage *TS_LANG(); extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {