From 502d6ba1d61131640c4805300ebe934f39ce7126 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Thu, 17 Feb 2022 09:16:06 -0800 Subject: [PATCH 1/2] Moved fuzzing to a sub-directory. gRPC does not want to depend on rules_fuzzing. --- BUILD | 10 ------- upb/file_descriptor_parsenew_fuzzer.cc | 36 -------------------------- 2 files changed, 46 deletions(-) delete mode 100644 upb/file_descriptor_parsenew_fuzzer.cc diff --git a/BUILD b/BUILD index c5336e8c70..aaf356d55a 100644 --- a/BUILD +++ b/BUILD @@ -37,7 +37,6 @@ load( "upb_proto_library_copts", "upb_proto_reflection_library", ) -load("@rules_fuzzing//fuzzing:cc_defs.bzl", "cc_fuzz_test") licenses(["notice"]) @@ -327,15 +326,6 @@ cc_test( ], ) -cc_fuzz_test( - name = "file_descriptor_parsenew_fuzzer", - srcs = ["upb/file_descriptor_parsenew_fuzzer.cc"], - deps = [ - "//:descriptor_upb_proto", - "//:upb", - ], -) - upb_proto_library( name = "conformance_proto_upb", testonly = 1, diff --git a/upb/file_descriptor_parsenew_fuzzer.cc b/upb/file_descriptor_parsenew_fuzzer.cc deleted file mode 100644 index 91983bec0f..0000000000 --- a/upb/file_descriptor_parsenew_fuzzer.cc +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2009-2021, Google LLC -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of Google LLC nor the -// names of its contributors may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#include - -#include "google/protobuf/descriptor.upb.h" -#include "upb/upb.hpp" - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - upb::Arena arena; - google_protobuf_FileDescriptorProto_parse(reinterpret_cast(data), - size, arena.ptr()); - return 0; -} From 87f8a53dfea3c06775fc158807995839105ce6da Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Thu, 17 Feb 2022 09:27:11 -0800 Subject: [PATCH 2/2] Re-added files in a new directory. --- upb/fuzz/BUILD | 11 +++++++ upb/fuzz/file_descriptor_parsenew_fuzzer.cc | 36 +++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 upb/fuzz/BUILD create mode 100644 upb/fuzz/file_descriptor_parsenew_fuzzer.cc diff --git a/upb/fuzz/BUILD b/upb/fuzz/BUILD new file mode 100644 index 0000000000..3dd5a35744 --- /dev/null +++ b/upb/fuzz/BUILD @@ -0,0 +1,11 @@ + +load("@rules_fuzzing//fuzzing:cc_defs.bzl", "cc_fuzz_test") + +cc_fuzz_test( + name = "file_descriptor_parsenew_fuzzer", + srcs = ["file_descriptor_parsenew_fuzzer.cc"], + deps = [ + "//:descriptor_upb_proto", + "//:upb", + ], +) diff --git a/upb/fuzz/file_descriptor_parsenew_fuzzer.cc b/upb/fuzz/file_descriptor_parsenew_fuzzer.cc new file mode 100644 index 0000000000..91983bec0f --- /dev/null +++ b/upb/fuzz/file_descriptor_parsenew_fuzzer.cc @@ -0,0 +1,36 @@ +// Copyright (c) 2009-2021, Google LLC +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of Google LLC nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include + +#include "google/protobuf/descriptor.upb.h" +#include "upb/upb.hpp" + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + upb::Arena arena; + google_protobuf_FileDescriptorProto_parse(reinterpret_cast(data), + size, arena.ptr()); + return 0; +}