2025-03-03 17:01:09 +02:00
|
|
|
if FUZZ_OPT != 'enabled'
|
2025-02-14 15:10:23 +02:00
|
|
|
subdir_done()
|
|
|
|
endif
|
|
|
|
|
2025-02-04 16:58:43 +02:00
|
|
|
subdir('input')
|
|
|
|
subdir('tests')
|
|
|
|
|
|
|
|
fuzz_sources = ['fuzz.cc', 'fuzz.h']
|
2025-02-11 15:47:46 +02:00
|
|
|
cpp_flags = [
|
|
|
|
f'-DKEA_LFC_SOURCES="@KEA_LFC@"',
|
|
|
|
f'-DKEA_LFC_INSTALLATION="@PREFIX@/sbin/kea-lfc"',
|
|
|
|
]
|
2025-03-03 17:01:09 +02:00
|
|
|
if FUZZ_OPT == 'clusterfuzzlite'
|
2025-02-07 10:27:11 +01:00
|
|
|
cpp_flags = ['-fsanitize=fuzzer', '-gdwarf-4']
|
2025-02-04 16:58:43 +02:00
|
|
|
else
|
2025-02-07 10:27:11 +01:00
|
|
|
fuzz_sources += ['main.cc']
|
2025-02-04 16:58:43 +02:00
|
|
|
endif
|
|
|
|
|
2025-02-11 15:47:46 +02:00
|
|
|
includes = [include_directories('.')] + INCLUDES
|
|
|
|
|
2025-02-07 10:27:11 +01:00
|
|
|
fuzz_lib = static_library(
|
|
|
|
'fuzz_lib',
|
|
|
|
fuzz_sources,
|
2025-02-11 15:47:46 +02:00
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: LIBS_BUILT_SO_FAR,
|
2025-02-04 16:58:43 +02:00
|
|
|
)
|
|
|
|
|
2025-02-07 10:27:11 +01:00
|
|
|
executable(
|
|
|
|
'fuzz_config_kea_dhcp4',
|
|
|
|
'fuzz_config_kea_dhcp4.cc',
|
|
|
|
fuzz_sources,
|
2025-02-11 15:47:46 +02:00
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp4_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
)
|
|
|
|
|
|
|
|
executable(
|
|
|
|
'fuzz_config_kea_dhcp6',
|
|
|
|
'fuzz_config_kea_dhcp6.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp6_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
)
|
|
|
|
|
|
|
|
executable(
|
|
|
|
'fuzz_http_endpoint_kea_dhcp4',
|
|
|
|
'fuzz_http_endpoint_kea_dhcp4.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
2025-02-07 10:27:11 +01:00
|
|
|
link_with: [dhcp4_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
2025-02-04 16:58:43 +02:00
|
|
|
)
|
2025-02-11 15:47:46 +02:00
|
|
|
|
|
|
|
executable(
|
|
|
|
'fuzz_http_endpoint_kea_dhcp6',
|
|
|
|
'fuzz_http_endpoint_kea_dhcp6.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp6_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
)
|
|
|
|
|
|
|
|
executable(
|
|
|
|
'fuzz_packets_kea_dhcp4',
|
|
|
|
'fuzz_packets_kea_dhcp4.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp4_lib, kea_dhcpsrv_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
)
|
|
|
|
|
|
|
|
executable(
|
|
|
|
'fuzz_packets_kea_dhcp6',
|
|
|
|
'fuzz_packets_kea_dhcp6.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp6_lib, kea_dhcpsrv_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
)
|
|
|
|
|
|
|
|
executable(
|
|
|
|
'fuzz_unix_socket_kea_dhcp4',
|
|
|
|
'fuzz_unix_socket_kea_dhcp4.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp4_lib, kea_testutils_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
)
|
|
|
|
|
|
|
|
executable(
|
|
|
|
'fuzz_unix_socket_kea_dhcp6',
|
|
|
|
'fuzz_unix_socket_kea_dhcp6.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
2025-02-27 11:34:40 +02:00
|
|
|
dependencies: [crypto, gtest],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp6_lib, kea_testutils_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
)
|