grpc
third_party
upb
upb
fuzz
file_descriptor_parsenew_fuzzer.cc
Go to the documentation of this file.
1
// Copyright (c) 2009-2021, Google LLC
2
// All rights reserved.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are met:
6
// * Redistributions of source code must retain the above copyright
7
// notice, this list of conditions and the following disclaimer.
8
// * Redistributions in binary form must reproduce the above copyright
9
// notice, this list of conditions and the following disclaimer in the
10
// documentation and/or other materials provided with the distribution.
11
// * Neither the name of Google LLC nor the
12
// names of its contributors may be used to endorse or promote products
13
// derived from this software without specific prior written permission.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
// ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
19
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
26
#include <cstdint>
27
28
#include "
google/protobuf/descriptor.upb.h
"
29
#include "
upb/def.hpp
"
30
#include "
upb/upb.hpp
"
31
32
extern
"C"
int
LLVMFuzzerTestOneInput
(
const
uint8_t
*
data
,
size_t
size
) {
33
upb::Arena
arena
;
34
google_protobuf_FileDescriptorProto
* proto =
35
google_protobuf_FileDescriptorProto_parse
(
36
reinterpret_cast<
const
char
*
>
(
data
),
size
,
arena
.ptr());
37
if
(proto) {
38
upb::SymbolTable
symtab
;
39
upb::Status
status
;
40
symtab
.AddFile(proto, &
status
);
41
}
42
return
0;
43
}
upb::SymbolTable
Definition:
def.hpp:377
status
absl::Status status
Definition:
rls.cc:251
def.hpp
uint8_t
unsigned char uint8_t
Definition:
stdint-msvc2008.h:78
arena
grpc_core::ScopedArenaPtr arena
Definition:
binder_transport_test.cc:237
descriptor.upb.h
data
char data[kBufferLength]
Definition:
abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1006
symtab
upb_symtab * symtab
Definition:
bloaty/third_party/protobuf/php/ext/google/protobuf/protobuf.h:774
upb::Arena
Definition:
upb.hpp:68
LLVMFuzzerTestOneInput
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
Definition:
file_descriptor_parsenew_fuzzer.cc:32
upb.hpp
google_protobuf_FileDescriptorProto_parse
UPB_INLINE google_protobuf_FileDescriptorProto * google_protobuf_FileDescriptorProto_parse(const char *buf, size_t size, upb_Arena *arena)
Definition:
descriptor.upb.h:223
size
voidpf void uLong size
Definition:
bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
upb::Status
Definition:
upb.hpp:35
google_protobuf_FileDescriptorProto
struct google_protobuf_FileDescriptorProto google_protobuf_FileDescriptorProto
Definition:
descriptor.upb.h:51
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:23