blob: c2017951678396229734135079826ca96795fc49 [file] [log] [blame]
Marc-André Lureaub5f4b772019-03-26 01:53:57 +01001extra_sources = []
jeremy marchand0e9b0ad2024-04-24 01:06:29 +02002extra_cargs = []
3extra_ldargs = []
Marc-André Lureaub5f4b772019-03-26 01:53:57 +01004fuzzing_engine = []
5
jeremy marchand0e9b0ad2024-04-24 01:06:29 +02006
7extra_cargs += '-g'
8if fuzzer_build
9 extra_cargs += '-fsanitize=fuzzer,address'
10 extra_cargs += '-fsanitize-coverage=edge,indirect-calls,trace-cmp'
11 extra_cargs += '-DCUSTOM_MUTATOR'
12 extra_cargs += '-fprofile-instr-generate'
13 extra_cargs += '-fcoverage-mapping'
14
15 extra_ldargs += '-fsanitize=fuzzer,address'
16 extra_ldargs += '-fprofile-instr-generate'
17 extra_ldargs += '-fcoverage-mapping'
Marc-André Lureaub5f4b772019-03-26 01:53:57 +010018endif
19
20deps = [glib_dep, libslirp_dep, platform_deps]
jeremy marchand0e9b0ad2024-04-24 01:06:29 +020021
Samuel Thibault3a9992e2024-04-25 23:32:11 +020022exes = [
23 ['fuzz-arp', ['slirp_fuzz_arp.c', 'helper.c']],
24 ['fuzz-ip-header', ['slirp_fuzz_ip_header.c', 'helper.c']],
Maelie CHAN PENG884d39e2024-04-24 03:03:48 +020025 ['fuzz-udp', ['slirp_fuzz_udp.c', 'helper.c']],
26 ['fuzz-udp-h', ['slirp_fuzz_udp_header.c', 'helper.c']],
27 ['fuzz-udp-d', ['slirp_fuzz_udp_data.c', 'helper.c']],
28 ['fuzz-tftp', ['slirp_fuzz_udp_data.c', 'helper.c']],
29 ['fuzz-dhcp', ['slirp_fuzz_udp_data.c', 'helper.c']],
30 ['fuzz-tcp', ['slirp_fuzz_tcp.c', 'helper.c']],
31 ['fuzz-tcp-h', ['slirp_fuzz_tcp_header.c', 'helper.c']],
32 ['fuzz-tcp-d', ['slirp_fuzz_tcp_data.c', 'helper.c']],
33 ['fuzz-icmp', ['slirp_fuzz_icmp.c', 'helper.c']],
Samuel Thibaultab0db892024-04-25 20:24:15 +020034
Samuel Thibault3a9992e2024-04-25 23:32:11 +020035 ['fuzz-ndp', ['slirp_fuzz_icmp6.c', 'helper.c']],
Samuel Thibaultab0db892024-04-25 20:24:15 +020036 ['fuzz-ip6-header', ['slirp_fuzz_ip6_header.c', 'helper.c']],
37 ['fuzz-udp6', ['slirp_fuzz_udp6.c', 'helper.c']],
38 ['fuzz-udp6-h', ['slirp_fuzz_udp6_header.c', 'helper.c']],
39 ['fuzz-udp6-d', ['slirp_fuzz_udp6_data.c', 'helper.c']],
40 ['fuzz-tftp6', ['slirp_fuzz_udp6_data.c', 'helper.c']],
41 ['fuzz-tcp6', ['slirp_fuzz_tcp6.c', 'helper.c']],
42 ['fuzz-tcp6-h', ['slirp_fuzz_tcp6_header.c', 'helper.c']],
43 ['fuzz-tcp6-d', ['slirp_fuzz_tcp6_data.c', 'helper.c']],
44 ['fuzz-icmp6', ['slirp_fuzz_icmp6.c', 'helper.c']],
Samuel Thibault3a9992e2024-04-25 23:32:11 +020045 ]
jeremy marchand0e9b0ad2024-04-24 01:06:29 +020046
Marc-André Lureaub5f4b772019-03-26 01:53:57 +010047if fuzzer_build
jeremy marchand0e9b0ad2024-04-24 01:06:29 +020048 foreach exe : exes
49 executable(
50 exe[0], exe[1],
51 dependencies : deps,
52 c_args: extra_cargs,
53 link_args: extra_ldargs,
54 )
55 endforeach
Marc-André Lureaub5f4b772019-03-26 01:53:57 +010056endif
57
jeremy marchand0e9b0ad2024-04-24 01:06:29 +020058if fuzz_reproduce
Maelie CHAN PENG884d39e2024-04-24 03:03:48 +020059 executable(['reproducer', ['reproducer.c', 'helper.c']],
jeremy marchand0e9b0ad2024-04-24 01:06:29 +020060 dependencies: deps,
61 c_args: extra_cargs,
62 link_args: extra_ldargs,
63 )
64endif