diff options
Diffstat (limited to 'fuzz/FreeFuzzer.cpp')
| -rw-r--r-- | fuzz/FreeFuzzer.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/fuzz/FreeFuzzer.cpp b/fuzz/FreeFuzzer.cpp new file mode 100644 index 0000000..1eeb94f --- /dev/null +++ b/fuzz/FreeFuzzer.cpp @@ -0,0 +1,30 @@ +// Copyright 2020 Google LLC +// Copyright 2025 Mikhail Khachaiants <mkhachaiants@gmail.com> +// +// 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 +// +// http://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 "uriparser/Uri.h" +#include "FuzzingUtils.h" +#include <cstddef> +#include <cstdint> + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size) { + FuzzedDataProvider fdp(data, size); + UriString fuzz_uri = consumeRemainingBytesAsString(fdp); + URI_TYPE(ParserState) state; + URI_TYPE(Uri) uriA; + state.uri = &uriA; + URI_FUNC(ParseUri)(&state, fuzz_uri.c_str()); + URI_FUNC(FreeUriMembers)(&uriA); + return 0; +} |
