Coverage Report

Created: 2023-03-26 06:07

/src/unbound/fuzz_3.c
Line
Count
Source
1
#include "config.h"
2
#include "sldns/sbuffer.h"
3
#include "sldns/wire2str.h"
4
#include "sldns/str2wire.h"
5
#include "util/data/dname.h"
6
7
#define SZ 1000
8
#define SZ2 100
9
10
11
3.71k
int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t nr) {
12
3.71k
  char *bin = malloc(nr);
13
3.71k
  uint8_t *bout;
14
3.71k
  size_t len, len2;
15
16
3.71k
  memset(bin, 0, nr);
17
3.71k
  memcpy(bin, buf, nr);
18
19
3.71k
  if (nr > 2) {
20
3.71k
    bin[nr-1] = 0x00;  // null terminate
21
3.71k
    len = bin[0] & 0xff;  // want random sized output buf
22
3.71k
    bout = malloc(len);
23
3.71k
    nr--;
24
3.71k
    bin++;
25
  
26
    // call the targets  
27
3.71k
    len2 = len; sldns_str2wire_dname_buf(bin, bout, &len2);
28
3.71k
    len2 = len; sldns_str2wire_int8_buf(bin, bout, &len2);
29
3.71k
    len2 = len; sldns_str2wire_int16_buf(bin, bout, &len2);
30
3.71k
    len2 = len; sldns_str2wire_int32_buf(bin, bout, &len2);
31
3.71k
    len2 = len; sldns_str2wire_a_buf(bin, bout, &len2);
32
3.71k
    len2 = len; sldns_str2wire_aaaa_buf(bin, bout, &len2);
33
3.71k
    len2 = len; sldns_str2wire_str_buf(bin, bout, &len2);
34
3.71k
    len2 = len; sldns_str2wire_apl_buf(bin, bout, &len2);
35
3.71k
    len2 = len; sldns_str2wire_b64_buf(bin, bout, &len2);
36
3.71k
    len2 = len; sldns_str2wire_b32_ext_buf(bin, bout, &len2);
37
3.71k
    len2 = len; sldns_str2wire_hex_buf(bin, bout, &len2);
38
3.71k
    len2 = len; sldns_str2wire_nsec_buf(bin, bout, &len2);
39
3.71k
    len2 = len; sldns_str2wire_type_buf(bin, bout, &len2);
40
3.71k
    len2 = len; sldns_str2wire_class_buf(bin, bout, &len2);
41
3.71k
    len2 = len; sldns_str2wire_cert_alg_buf(bin, bout, &len2);
42
3.71k
    len2 = len; sldns_str2wire_alg_buf(bin, bout, &len2);
43
3.71k
    len2 = len; sldns_str2wire_tsigerror_buf(bin, bout, &len2);
44
3.71k
    len2 = len; sldns_str2wire_time_buf(bin, bout, &len2);
45
3.71k
    len2 = len; sldns_str2wire_tsigtime_buf(bin, bout, &len2);
46
3.71k
    len2 = len; sldns_str2wire_period_buf(bin, bout, &len2);
47
3.71k
    len2 = len; sldns_str2wire_loc_buf(bin, bout, &len2);
48
3.71k
    len2 = len; sldns_str2wire_wks_buf(bin, bout, &len2);
49
3.71k
    len2 = len; sldns_str2wire_nsap_buf(bin, bout, &len2);
50
3.71k
    len2 = len; sldns_str2wire_atma_buf(bin, bout, &len2);
51
3.71k
    len2 = len; sldns_str2wire_ipseckey_buf(bin, bout, &len2);
52
3.71k
    len2 = len; sldns_str2wire_nsec3_salt_buf(bin, bout, &len2);
53
3.71k
    len2 = len; sldns_str2wire_ilnp64_buf(bin, bout, &len2);
54
3.71k
    len2 = len; sldns_str2wire_eui48_buf(bin, bout, &len2);
55
3.71k
    len2 = len; sldns_str2wire_eui64_buf(bin, bout, &len2);
56
3.71k
    len2 = len; sldns_str2wire_tag_buf(bin, bout, &len2);
57
3.71k
    len2 = len; sldns_str2wire_long_str_buf(bin, bout, &len2);
58
3.71k
    len2 = len; sldns_str2wire_hip_buf(bin, bout, &len2);
59
3.71k
    len2 = len; sldns_str2wire_int16_data_buf(bin, bout, &len2);
60
61
3.71k
    bin--;
62
3.71k
    free(bout);
63
3.71k
  }
64
65
3.71k
out:
66
3.71k
  free(bin);
67
3.71k
}