From: Michael Hanselmann Date: Tue, 9 Apr 2019 23:20:36 +0000 (+0200) Subject: Add fuzzing binary for ldap_decode X-Git-Tag: talloc-2.3.1~332 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=de7c78335de63f95f97f946aec287b7bb87f6b47;p=thirdparty%2Fsamba.git Add fuzzing binary for ldap_decode Signed-off-by: Michael Hanselmann Reviewed-by: Andrew Bartlett Reviewed-by: Uri Simchoni --- diff --git a/lib/fuzzing/fuzz_ldap_decode.c b/lib/fuzzing/fuzz_ldap_decode.c new file mode 100644 index 00000000000..85e0e38983e --- /dev/null +++ b/lib/fuzzing/fuzz_ldap_decode.c @@ -0,0 +1,56 @@ +/* + Fuzzing for ldap_decode. + 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/asn1.h" +#include "libcli/ldap/ldap_message.h" +#include "libcli/ldap/ldap_proto.h" + +int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + return 0; +} + +int LLVMFuzzerTestOneInput(uint8_t *buf, size_t len) +{ + TALLOC_CTX *mem_ctx = talloc_init(__FUNCTION__); + struct asn1_data *asn1; + struct ldap_message *ldap_msg; + NTSTATUS status; + + asn1 = asn1_init(mem_ctx); + if (!asn1) { + goto out; + } + + asn1_load_nocopy(asn1, buf, len); + + ldap_msg = talloc(mem_ctx, struct ldap_message); + if (!ldap_msg) { + goto out; + } + + status = ldap_decode(asn1, samba_ldap_control_handlers(), ldap_msg); + printf("%s\n", nt_errstr(status)); + +out: + talloc_free(mem_ctx); + + return 0; +} diff --git a/lib/fuzzing/wscript_build b/lib/fuzzing/wscript_build index fc6cfae77cc..d035f7e1a3f 100644 --- a/lib/fuzzing/wscript_build +++ b/lib/fuzzing/wscript_build @@ -39,3 +39,10 @@ bld.SAMBA_BINARY('fuzz_lzxpress', install=False, enabled=bld.env.enable_libfuzzer, ) + +bld.SAMBA_BINARY('fuzz_ldap_decode', + source='fuzz_ldap_decode.c', + deps='fuzzing cli-ldap', + install=False, + enabled=bld.env.enable_libfuzzer, + )