From: Michael Hanselmann Date: Thu, 4 Apr 2019 22:50:09 +0000 (+0200) Subject: Add fuzzing binary for reg_parse X-Git-Tag: talloc-2.3.1~336 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e477a94ffd3795d7d8aa83e899e9b0f2f9860a79;p=thirdparty%2Fsamba.git Add fuzzing binary for reg_parse A temporary file is used to store the fuzzing input. Signed-off-by: Michael Hanselmann Reviewed-by: Andrew Bartlett Reviewed-by: Uri Simchoni --- diff --git a/lib/fuzzing/fuzz_reg_parse.c b/lib/fuzzing/fuzz_reg_parse.c new file mode 100644 index 00000000000..36b1b6f84ac --- /dev/null +++ b/lib/fuzzing/fuzz_reg_parse.c @@ -0,0 +1,47 @@ +/* + * Fuzzing for reg_parse + * Copyright (C) Michael Hanselmann 2019 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include "includes.h" +#include "fuzzing/fuzzing.h" +#include "lib/util/fault.h" +#include "registry.h" +#include "registry/reg_parse.h" + +static FILE *fp; + +int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + fp = tmpfile(); + + return 0; +} + +int LLVMFuzzerTestOneInput(uint8_t *buf, size_t len) +{ + const reg_parse_callback cb = {0}; + int ret; + + rewind(fp); + (void)fwrite(buf, len, 1, fp); + (void)fflush(fp); + rewind(fp); + + ret = reg_parse_fd(fileno(fp), &cb, ""); + + return 0; +} diff --git a/lib/fuzzing/wscript_build b/lib/fuzzing/wscript_build index 9c73c59c259..e24f6b028c5 100644 --- a/lib/fuzzing/wscript_build +++ b/lib/fuzzing/wscript_build @@ -18,3 +18,10 @@ bld.SAMBA_BINARY('fuzz_oLschema2ldif', install=False, enabled=bld.env.enable_libfuzzer, ) + +bld.SAMBA_BINARY('fuzz_reg_parse', + source='fuzz_reg_parse.c', + deps='fuzzing samba3-util smbconf REGFIO', + install=False, + enabled=bld.env.enable_libfuzzer, + )