mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 01:55:22 +03:00
meson: Use dicts for fuzzer definitions
This commit is contained in:
parent
a9a7153cd2
commit
2ed35b2f3e
27
meson.build
27
meson.build
@ -4181,17 +4181,15 @@ endif
|
|||||||
############################################################
|
############################################################
|
||||||
|
|
||||||
foreach fuzzer : simple_fuzzers
|
foreach fuzzer : simple_fuzzers
|
||||||
fuzzers += [ [[fuzzer]] ]
|
fuzzers += { 'sources' : [fuzzer] }
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
fuzzer_exes = []
|
fuzzer_exes = []
|
||||||
|
|
||||||
foreach tuple : fuzzers
|
foreach fuzzer : fuzzers
|
||||||
sources = tuple[0]
|
sources = fuzzer.get('sources')
|
||||||
link_with = tuple.length() > 1 and tuple[1].length() > 0 ? tuple[1] : [libshared]
|
base = fuzzer.get('base', {})
|
||||||
dependencies = tuple.length() > 2 ? tuple[2] : []
|
dependencies = [base.get('dependencies', []), fuzzer.get('dependencies', [])]
|
||||||
incs = tuple.length() > 3 and tuple[3].length() > 0 ? tuple[3] : includes
|
|
||||||
defs = tuple.length() > 4 ? tuple[4] : []
|
|
||||||
link_args = []
|
link_args = []
|
||||||
|
|
||||||
if want_ossfuzz
|
if want_ossfuzz
|
||||||
@ -4203,7 +4201,7 @@ foreach tuple : fuzzers
|
|||||||
link_args += ['-fsanitize=fuzzer']
|
link_args += ['-fsanitize=fuzzer']
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
sources += 'src/fuzz/fuzz-main.c'
|
sources += files('src/fuzz/fuzz-main.c')
|
||||||
endif
|
endif
|
||||||
sources += fuzz_generated_directives
|
sources += fuzz_generated_directives
|
||||||
|
|
||||||
@ -4213,11 +4211,14 @@ foreach tuple : fuzzers
|
|||||||
exe = executable(
|
exe = executable(
|
||||||
name,
|
name,
|
||||||
sources,
|
sources,
|
||||||
include_directories : [incs, include_directories('src/fuzz')],
|
include_directories : [
|
||||||
link_with : link_with,
|
base.get('includes', []),
|
||||||
dependencies : [dependencies,
|
fuzzer.get('includes', includes),
|
||||||
versiondep],
|
include_directories('src/fuzz'),
|
||||||
c_args : defs + test_cflags,
|
],
|
||||||
|
link_with : [base.get('link_with', []), fuzzer.get('link_with', libshared)],
|
||||||
|
dependencies : [dependencies, versiondep],
|
||||||
|
c_args : [test_cflags, fuzzer.get('c_args', [])],
|
||||||
link_args: link_args,
|
link_args: link_args,
|
||||||
install : false,
|
install : false,
|
||||||
build_by_default : fuzzer_build)
|
build_by_default : fuzzer_build)
|
||||||
|
@ -411,9 +411,25 @@ if efi_arch[1] in ['ia32', 'x86_64', 'arm', 'aarch64']
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-bcd.c', 'bcd.c', 'efi-string.c')],
|
{
|
||||||
[files('fuzz-efi-string.c', 'efi-string.c')],
|
'sources' : files(
|
||||||
[files('fuzz-efi-printf.c', 'efi-string.c')],
|
'fuzz-bcd.c',
|
||||||
|
'bcd.c',
|
||||||
|
'efi-string.c'
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'sources' : files(
|
||||||
|
'fuzz-efi-string.c',
|
||||||
|
'efi-string.c'
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'sources' : files(
|
||||||
|
'fuzz-efi-printf.c',
|
||||||
|
'efi-string.c'
|
||||||
|
),
|
||||||
|
},
|
||||||
]
|
]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -185,8 +185,12 @@ test_core_base = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-unit-file.c'),
|
{
|
||||||
[libcore,
|
'sources' : files('fuzz-unit-file.c'),
|
||||||
libshared],
|
'link_with' : [
|
||||||
[libmount]],
|
libcore,
|
||||||
|
libshared
|
||||||
|
],
|
||||||
|
'dependencies' : libmount,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -69,9 +69,12 @@ endif
|
|||||||
############################################################
|
############################################################
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-journal-remote.c'),
|
{
|
||||||
[libsystemd_journal_remote,
|
'sources' : files('fuzz-journal-remote.c'),
|
||||||
libshared],
|
'link_with' : [
|
||||||
[],
|
libshared,
|
||||||
[journal_includes]],
|
libsystemd_journal_remote,
|
||||||
|
],
|
||||||
|
'includes' : journal_includes,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -111,40 +111,52 @@ tests += [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
fuzzer_journald_base = {
|
||||||
|
'link_with' : [libjournal_core, libshared],
|
||||||
|
'dependencies' : [libselinux],
|
||||||
|
}
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-journald-audit.c',
|
{
|
||||||
'fuzz-journald.c'),
|
'sources' : files(
|
||||||
[libjournal_core,
|
'fuzz-journald-audit.c',
|
||||||
libshared],
|
'fuzz-journald.c',
|
||||||
[libselinux]],
|
),
|
||||||
|
'base' : fuzzer_journald_base,
|
||||||
[files('fuzz-journald-kmsg.c',
|
},
|
||||||
'fuzz-journald.c'),
|
{
|
||||||
[libjournal_core,
|
'sources' : files(
|
||||||
libshared],
|
'fuzz-journald-kmsg.c',
|
||||||
[libselinux]],
|
'fuzz-journald.c',
|
||||||
|
),
|
||||||
[files('fuzz-journald-native.c',
|
'base' : fuzzer_journald_base,
|
||||||
'fuzz-journald.c'),
|
},
|
||||||
[libjournal_core,
|
{
|
||||||
libshared],
|
'sources' : files(
|
||||||
[libselinux]],
|
'fuzz-journald-native.c',
|
||||||
|
'fuzz-journald.c',
|
||||||
[files('fuzz-journald-native-fd.c',
|
),
|
||||||
'fuzz-journald.c'),
|
'base' : fuzzer_journald_base,
|
||||||
[libjournal_core,
|
},
|
||||||
libshared],
|
{
|
||||||
[libselinux]],
|
'sources' : files(
|
||||||
|
'fuzz-journald-native-fd.c',
|
||||||
[files('fuzz-journald-stream.c',
|
'fuzz-journald.c',
|
||||||
'fuzz-journald.c'),
|
),
|
||||||
[libjournal_core,
|
'base' : fuzzer_journald_base,
|
||||||
libshared],
|
},
|
||||||
[libselinux]],
|
{
|
||||||
|
'sources' : files(
|
||||||
[files('fuzz-journald-syslog.c',
|
'fuzz-journald-stream.c',
|
||||||
'fuzz-journald.c'),
|
'fuzz-journald.c',
|
||||||
[libjournal_core,
|
),
|
||||||
libshared],
|
'base' : fuzzer_journald_base,
|
||||||
[libselinux]],
|
},
|
||||||
|
{
|
||||||
|
'sources' : files(
|
||||||
|
'fuzz-journald-syslog.c',
|
||||||
|
'fuzz-journald.c',
|
||||||
|
),
|
||||||
|
'base' : fuzzer_journald_base,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -91,28 +91,33 @@ tests += [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
fuzzer_network_base = {
|
||||||
|
'link_with' : [libshared, libsystemd_network],
|
||||||
|
}
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-dhcp-client.c'),
|
{
|
||||||
[libshared,
|
'sources' : files('fuzz-dhcp-client.c'),
|
||||||
libsystemd_network]],
|
'base' : fuzzer_network_base,
|
||||||
|
},
|
||||||
[files('fuzz-dhcp6-client.c'),
|
{
|
||||||
[libshared,
|
'sources' : files('fuzz-dhcp6-client.c'),
|
||||||
libsystemd_network]],
|
'base' : fuzzer_network_base,
|
||||||
|
},
|
||||||
[files('fuzz-dhcp-server.c'),
|
{
|
||||||
[libsystemd_network,
|
'sources' : files('fuzz-dhcp-server.c'),
|
||||||
libshared]],
|
'base' : fuzzer_network_base,
|
||||||
|
},
|
||||||
[files('fuzz-dhcp-server-relay.c'),
|
{
|
||||||
[libsystemd_network,
|
'sources' : files('fuzz-dhcp-server-relay.c'),
|
||||||
libshared]],
|
'base' : fuzzer_network_base,
|
||||||
|
},
|
||||||
[files('fuzz-lldp-rx.c'),
|
{
|
||||||
[libshared,
|
'sources' : files('fuzz-lldp-rx.c'),
|
||||||
libsystemd_network]],
|
'base' : fuzzer_network_base,
|
||||||
|
},
|
||||||
[files('fuzz-ndisc-rs.c'),
|
{
|
||||||
[libshared,
|
'sources' : files('fuzz-ndisc-rs.c'),
|
||||||
libsystemd_network]],
|
'base' : fuzzer_network_base,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -171,20 +171,21 @@ if conf.get('ENABLE_NETWORKD') == 1
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
fuzzers += [
|
fuzzer_network_base = {
|
||||||
[files('fuzz-netdev-parser.c'),
|
'link_with' : [libnetworkd_core, libsystemd_network, networkd_link_with],
|
||||||
[libnetworkd_core,
|
'dependencies' : threads,
|
||||||
libsystemd_network,
|
'includes' : network_includes,
|
||||||
networkd_link_with],
|
}
|
||||||
[threads],
|
|
||||||
network_includes],
|
|
||||||
|
|
||||||
[files('fuzz-network-parser.c'),
|
fuzzers += [
|
||||||
[libnetworkd_core,
|
{
|
||||||
libsystemd_network,
|
'sources' : files('fuzz-netdev-parser.c'),
|
||||||
networkd_link_with],
|
'base' : fuzzer_network_base,
|
||||||
[threads],
|
},
|
||||||
network_includes],
|
{
|
||||||
|
'sources' : files('fuzz-network-parser.c'),
|
||||||
|
'base' : fuzzer_network_base,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
test_network_base = {
|
test_network_base = {
|
||||||
|
@ -66,14 +66,18 @@ tests += [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
fuzzers += [
|
fuzzer_nspawn_base = {
|
||||||
[files('fuzz-nspawn-settings.c'),
|
'link_with' : [libshared, libnspawn_core],
|
||||||
[libshared,
|
'dependencies' : libseccomp
|
||||||
libnspawn_core],
|
}
|
||||||
[libseccomp]],
|
|
||||||
|
|
||||||
[files('fuzz-nspawn-oci.c'),
|
fuzzers += [
|
||||||
[libshared,
|
{
|
||||||
libnspawn_core],
|
'sources' : files('fuzz-nspawn-settings.c'),
|
||||||
[libseccomp]],
|
'base' : fuzzer_nspawn_base,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'sources' : files('fuzz-nspawn-oci.c'),
|
||||||
|
'base' : fuzzer_nspawn_base,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -187,23 +187,27 @@ tests += [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
fuzzer_resolve_base = {
|
||||||
|
'link_with' : [libsystemd_resolve_core, libshared],
|
||||||
|
'dependencies' : [lib_openssl_or_gcrypt, libm],
|
||||||
|
}
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-dns-packet.c'),
|
{
|
||||||
[libsystemd_resolve_core,
|
'sources' : files('fuzz-dns-packet.c'),
|
||||||
libshared],
|
'base' : fuzzer_resolve_base,
|
||||||
[lib_openssl_or_gcrypt,
|
},
|
||||||
libm]],
|
{
|
||||||
[files('fuzz-etc-hosts.c',
|
'sources' : files(
|
||||||
'resolved-etc-hosts.c'),
|
'fuzz-etc-hosts.c',
|
||||||
[libsystemd_resolve_core,
|
'resolved-etc-hosts.c',
|
||||||
libshared],
|
),
|
||||||
[lib_openssl_or_gcrypt,
|
'base' : fuzzer_resolve_base,
|
||||||
libm]],
|
},
|
||||||
[files('fuzz-resource-record.c'),
|
{
|
||||||
[libsystemd_resolve_core,
|
'sources' : files('fuzz-resource-record.c'),
|
||||||
libshared],
|
'base' : fuzzer_resolve_base,
|
||||||
[lib_openssl_or_gcrypt,
|
},
|
||||||
libm]],
|
|
||||||
]
|
]
|
||||||
|
|
||||||
systemd_resolved_sources += files('resolved.c')
|
systemd_resolved_sources += files('resolved.c')
|
||||||
|
@ -48,8 +48,12 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-systemctl-parse-argv.c') +
|
{
|
||||||
systemctl_sources,
|
'sources' : [
|
||||||
systemctl_link_with,
|
files('fuzz-systemctl-parse-argv.c'),
|
||||||
[], [], ['-DFUZZ_SYSTEMCTL_PARSE_ARGV']]
|
systemctl_sources,
|
||||||
|
],
|
||||||
|
'link_with' : systemctl_link_with,
|
||||||
|
'c_args' : '-DFUZZ_SYSTEMCTL_PARSE_ARGV',
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -164,22 +164,27 @@ simple_fuzzers += files(
|
|||||||
'fuzz-udev-rule-parse-value.c',
|
'fuzz-udev-rule-parse-value.c',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fuzzer_udev_base = {
|
||||||
|
'link_with' : [libudevd_core, libshared],
|
||||||
|
'dependencies' : [threads, libacl],
|
||||||
|
}
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('net/fuzz-link-parser.c'),
|
{
|
||||||
[libudevd_core,
|
'sources' : files('net/fuzz-link-parser.c'),
|
||||||
libshared],
|
'includes' : udev_includes,
|
||||||
[threads,
|
'base' : fuzzer_udev_base,
|
||||||
libacl],
|
},
|
||||||
udev_includes],
|
{
|
||||||
|
'sources' : files('fuzz-udev-rules.c'),
|
||||||
[files('fuzz-udev-rules.c'),
|
'base' : fuzzer_udev_base,
|
||||||
[libudevd_core,
|
},
|
||||||
libshared],
|
{
|
||||||
[threads,
|
'sources' : files(
|
||||||
libacl]],
|
'fido_id/fuzz-fido-id-desc.c',
|
||||||
|
'fido_id/fido_id_desc.c',
|
||||||
[files('fido_id/fuzz-fido-id-desc.c',
|
),
|
||||||
'fido_id/fido_id_desc.c')],
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
test_libudev_base = {
|
test_libudev_base = {
|
||||||
|
@ -15,6 +15,10 @@ tests += [
|
|||||||
]
|
]
|
||||||
|
|
||||||
fuzzers += [
|
fuzzers += [
|
||||||
[files('fuzz-xdg-desktop.c',
|
{
|
||||||
'xdg-autostart-service.c')],
|
'sources' : files(
|
||||||
|
'fuzz-xdg-desktop.c',
|
||||||
|
'xdg-autostart-service.c',
|
||||||
|
),
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user