From 36082a2fe36ecd800d784ae44c14f1f18c66a7e9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 09:33:12 +0200 Subject: Adding upstream version 3.7.9. Signed-off-by: Daniel Baumann --- fuzz/gnutls_set_trust_file_fuzzer.c | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 fuzz/gnutls_set_trust_file_fuzzer.c (limited to 'fuzz/gnutls_set_trust_file_fuzzer.c') diff --git a/fuzz/gnutls_set_trust_file_fuzzer.c b/fuzz/gnutls_set_trust_file_fuzzer.c new file mode 100644 index 0000000..60982ff --- /dev/null +++ b/fuzz/gnutls_set_trust_file_fuzzer.c @@ -0,0 +1,57 @@ +/* +# Copyright 2017 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ +*/ + +#include + +#include + +#include +#include "fuzzer.h" + +static const uint8_t *g_data; +static size_t g_size; + +#if ! defined _WIN32 && defined HAVE_FMEMOPEN +#include +#include +#include +FILE *fopen(const char *pathname, const char *mode) +{ + FILE *(*libc_fopen)(const char *, const char *) = + (FILE *(*)(const char *, const char *)) dlsym (RTLD_NEXT, "fopen"); + + if (!strcmp(pathname, "ca_or_crl")) + return fmemopen((void *) g_data, g_size, mode); + + return libc_fopen(pathname, mode); +} +#endif + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + g_data = data; + g_size = size; + + gnutls_certificate_credentials_t creds; + gnutls_certificate_allocate_credentials(&creds); + gnutls_certificate_set_x509_trust_file(creds, "ca_or_crl", GNUTLS_X509_FMT_PEM); + gnutls_certificate_set_x509_crl_file(creds, "ca_or_crl", GNUTLS_X509_FMT_PEM); + gnutls_certificate_free_credentials(creds); + + return 0; +} -- cgit v1.2.3