From 790476332e39bbdad139066f25be87e2ddc90282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Wed, 12 Aug 2020 11:29:30 +0200 Subject: [PATCH] Really fuzz isc_lex_getmastertoken() in the test There was a copy&paste error in fuzz/isc_lex_getmastertoken.c where we didn't really test the function we wanted to test. Update the test to have the input data to always include expected 'tokentype' in the first byte, `eol` argument in the second byte and the rest of the input is the data to parse. --- fuzz/isc_lex_getmastertoken.c | 17 ++++++++++++++++- fuzz/isc_lex_getmastertoken.in/named.conf | Bin 16397 -> 16399 bytes fuzz/isc_lex_getmastertoken.in/simple | Bin 30 -> 32 bytes 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/fuzz/isc_lex_getmastertoken.c b/fuzz/isc_lex_getmastertoken.c index 75a2329585..a9beb7d681 100644 --- a/fuzz/isc_lex_getmastertoken.c +++ b/fuzz/isc_lex_getmastertoken.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "fuzz.h" @@ -46,6 +47,20 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { isc_buffer_t buf; isc_result_t result; + isc_tokentype_t expect; + bool eol; + + if (size < sizeof(expect) + sizeof(eol)) { + return (0); + } + + (void)memmove(&expect, data, sizeof(expect)); + data += sizeof(expect); + size -= sizeof(expect); + + (void)memmove(&eol, data, sizeof(eol)); + data += sizeof(eol); + size -= sizeof(eol); isc_buffer_constinit(&buf, data, size); isc_buffer_add(&buf, size); @@ -55,7 +70,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { do { isc_token_t token; - result = isc_lex_gettoken(lex, 0, &token); + result = isc_lex_getmastertoken(lex, &token, expect, eol); } while (result == ISC_R_SUCCESS); return (0); diff --git a/fuzz/isc_lex_getmastertoken.in/named.conf b/fuzz/isc_lex_getmastertoken.in/named.conf index f7d39fdabe83183099e8325f684389e1ab2a3b96..de8ea9c07dfcdd132d9334cacb7d81c9615539e4 100644 GIT binary patch delta 12 TcmeBeVC-*TWMX94!0P}27rO%= delta 10 RcmeBgVC-#R+{nc1000y$10MhY diff --git a/fuzz/isc_lex_getmastertoken.in/simple b/fuzz/isc_lex_getmastertoken.in/simple index 105e53a3dcf20774b932ce0f1b607c89c50d08b2..a5eb98cd6f6f10f9793768ef8c8e9d092420769f 100644 GIT binary patch delta 7 Ocmb1BU}9vLAO`>f&N+