• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "config.h"
2 #include "sldns/sbuffer.h"
3 #include "sldns/wire2str.h"
4 #include "util/data/dname.h"
5 
LLVMFuzzerTestOneInput(const uint8_t * bin,size_t nr)6 int LLVMFuzzerTestOneInput(const uint8_t *bin, size_t nr) {
7   char *bout;
8   uint8_t *a;
9   char *b;
10   size_t bl;
11   size_t al;
12   size_t len;
13 
14   if (nr > 2) {
15     len = bin[0] & 0xff;  // want random sized output buf
16     bout = malloc(len);
17     nr--;
18     bin++;
19     b = bout; bl = len; sldns_wire2str_edns_subnet_print(&b, &bl, bin, nr);
20     b = bout; bl = len; sldns_wire2str_edns_n3u_print(&b, &bl, bin, nr);
21     b = bout; bl = len; sldns_wire2str_edns_dhu_print(&b, &bl, bin, nr);
22     b = bout; bl = len; sldns_wire2str_edns_dau_print(&b, &bl, bin, nr);
23     b = bout; bl = len; sldns_wire2str_edns_nsid_print(&b, &bl, bin, nr);
24     b = bout; bl = len; sldns_wire2str_edns_ul_print(&b, &bl, bin, nr);
25     b = bout; bl = len; sldns_wire2str_edns_llq_print(&b, &bl, bin, nr);
26 
27     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_tsigerror_scan(&a, &al, &b, &bl);
28     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_long_str_scan(&a, &al, &b, &bl);
29     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_tag_scan(&a, &al, &b, &bl);
30     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_eui64_scan(&a, &al, &b, &bl);
31     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_int16_data_scan(&a, &al, &b, &bl);
32     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_hip_scan(&a, &al, &b, &bl);
33     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_wks_scan(&a, &al, &b, &bl);
34     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_loc_scan(&a, &al, &b, &bl);
35     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_cert_alg_scan(&a, &al, &b, &bl);
36     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_nsec3_salt_scan(&a, &al, &b, &bl);
37     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_nsec_scan(&a, &al, &b, &bl);
38     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_b32_ext_scan(&a, &al, &b, &bl);
39     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_apl_scan(&a, &al, &b, &bl);
40     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_str_scan(&a, &al, &b, &bl);
41     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_rdata_unknown_scan(&a, &al, &b, &bl);
42     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_header_scan(&a, &al, &b, &bl);
43     a = bin; al = nr; b = bout; bl = len; sldns_wire2str_pkt_scan(&a, &al, &b, &bl);
44 
45     bin--;
46     free(bout);
47   }
48 
49 out:
50   return 0;
51 }
52