ares-test-fuzz.c
Go to the documentation of this file.
1 #include <stddef.h>
2 
3 #include "ares.h"
4 
5 // Entrypoint for Clang's libfuzzer
6 int LLVMFuzzerTestOneInput(const unsigned char *data,
7  unsigned long size) {
8  // Feed the data into each of the ares_parse_*_reply functions.
9  struct hostent *host = NULL;
10  struct ares_addrttl info[5];
11  int count = 5;
12  ares_parse_a_reply(data, size, &host, info, &count);
13  if (host) ares_free_hostent(host);
14 
15  host = NULL;
16  struct ares_addr6ttl info6[5];
17  count = 5;
18  ares_parse_aaaa_reply(data, size, &host, info6, &count);
19  if (host) ares_free_hostent(host);
20 
21  host = NULL;
22  unsigned char addrv4[4] = {0x10, 0x20, 0x30, 0x40};
23  ares_parse_ptr_reply(data, size, addrv4, sizeof(addrv4), AF_INET, &host);
24  if (host) ares_free_hostent(host);
25 
26  host = NULL;
27  ares_parse_ns_reply(data, size, &host);
28  if (host) ares_free_hostent(host);
29 
30  struct ares_srv_reply* srv = NULL;
32  if (srv) ares_free_data(srv);
33 
34  struct ares_mx_reply* mx = NULL;
36  if (mx) ares_free_data(mx);
37 
38  struct ares_txt_reply* txt = NULL;
40  if (txt) ares_free_data(txt);
41 
42  struct ares_soa_reply* soa = NULL;
44  if (soa) ares_free_data(soa);
45 
46  struct ares_naptr_reply* naptr = NULL;
48  if (naptr) ares_free_data(naptr);
49 
50  struct ares_caa_reply* caa = NULL;
52  if (caa) ares_free_data(caa);
53 
54  return 0;
55 }
ares.h
ares_parse_naptr_reply
CARES_EXTERN int ares_parse_naptr_reply(const unsigned char *abuf, int alen, struct ares_naptr_reply **naptr_out)
Definition: ares_parse_naptr_reply.c:38
ares_parse_mx_reply
CARES_EXTERN int ares_parse_mx_reply(const unsigned char *abuf, int alen, struct ares_mx_reply **mx_out)
Definition: ares_parse_mx_reply.c:38
ares_caa_reply
Definition: ares.h:530
ares_addr6ttl
Definition: ares.h:525
ares_srv_reply
Definition: ares.h:539
ares_free_hostent
CARES_EXTERN void ares_free_hostent(struct hostent *host)
Definition: ares_free_hostent.c:26
ares_txt_reply
Definition: ares.h:553
ares_soa_reply
Definition: ares.h:580
ares_naptr_reply
Definition: ares.h:570
ares_txt_reply::txt
unsigned char * txt
Definition: ares.h:555
ares_parse_txt_reply
CARES_EXTERN int ares_parse_txt_reply(const unsigned char *abuf, int alen, struct ares_txt_reply **txt_out)
Definition: ares_parse_txt_reply.c:202
data
char data[kBufferLength]
Definition: abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1006
LLVMFuzzerTestOneInput
int LLVMFuzzerTestOneInput(const unsigned char *data, unsigned long size)
Definition: ares-test-fuzz.c:6
ares_free_data
CARES_EXTERN void ares_free_data(void *dataptr)
Definition: ares_data.c:41
ares_parse_caa_reply
CARES_EXTERN int ares_parse_caa_reply(const unsigned char *abuf, int alen, struct ares_caa_reply **caa_out)
Definition: ares_parse_caa_reply.c:41
count
int * count
Definition: bloaty/third_party/googletest/googlemock/test/gmock_stress_test.cc:96
ares_parse_ptr_reply
CARES_EXTERN int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr, int addrlen, int family, struct hostent **host)
Definition: ares_parse_ptr_reply.c:37
ares_parse_a_reply
CARES_EXTERN int ares_parse_a_reply(const unsigned char *abuf, int alen, struct hostent **host, struct ares_addrttl *addrttls, int *naddrttls)
Definition: ares_parse_a_reply.c:44
ares_mx_reply
Definition: ares.h:547
ares_parse_soa_reply
CARES_EXTERN int ares_parse_soa_reply(const unsigned char *abuf, int alen, struct ares_soa_reply **soa_out)
Definition: ares_parse_soa_reply.c:38
ares_addrttl
Definition: ares.h:520
ares_parse_srv_reply
CARES_EXTERN int ares_parse_srv_reply(const unsigned char *abuf, int alen, struct ares_srv_reply **srv_out)
Definition: ares_parse_srv_reply.c:38
ares_parse_ns_reply
CARES_EXTERN int ares_parse_ns_reply(const unsigned char *abuf, int alen, struct hostent **host)
Definition: ares_parse_ns_reply.c:39
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
ares_parse_aaaa_reply
CARES_EXTERN int ares_parse_aaaa_reply(const unsigned char *abuf, int alen, struct hostent **host, struct ares_addr6ttl *addrttls, int *naddrttls)
Definition: ares_parse_aaaa_reply.c:46


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:42