diff options
-rw-r--r-- | meson.build | 27 | ||||
-rw-r--r-- | src/boot/efi/meson.build | 22 | ||||
-rw-r--r-- | src/core/meson.build | 12 | ||||
-rw-r--r-- | src/journal-remote/meson.build | 13 | ||||
-rw-r--r-- | src/journal/meson.build | 82 | ||||
-rw-r--r-- | src/libsystemd-network/meson.build | 51 | ||||
-rw-r--r-- | src/network/meson.build | 27 | ||||
-rw-r--r-- | src/nspawn/meson.build | 22 | ||||
-rw-r--r-- | src/resolve/meson.build | 36 | ||||
-rw-r--r-- | src/systemctl/meson.build | 12 | ||||
-rw-r--r-- | src/udev/meson.build | 35 | ||||
-rw-r--r-- | src/xdg-autostart-generator/meson.build | 8 |
12 files changed, 205 insertions, 142 deletions
diff --git a/meson.build b/meson.build index 32fc9e966d..347e09b0e0 100644 --- a/meson.build +++ b/meson.build @@ -4181,17 +4181,15 @@ endif ############################################################ foreach fuzzer : simple_fuzzers - fuzzers += [ [[fuzzer]] ] + fuzzers += { 'sources' : [fuzzer] } endforeach fuzzer_exes = [] -foreach tuple : fuzzers - sources = tuple[0] - link_with = tuple.length() > 1 and tuple[1].length() > 0 ? tuple[1] : [libshared] - dependencies = tuple.length() > 2 ? tuple[2] : [] - incs = tuple.length() > 3 and tuple[3].length() > 0 ? tuple[3] : includes - defs = tuple.length() > 4 ? tuple[4] : [] +foreach fuzzer : fuzzers + sources = fuzzer.get('sources') + base = fuzzer.get('base', {}) + dependencies = [base.get('dependencies', []), fuzzer.get('dependencies', [])] link_args = [] if want_ossfuzz @@ -4203,7 +4201,7 @@ foreach tuple : fuzzers link_args += ['-fsanitize=fuzzer'] endif else - sources += 'src/fuzz/fuzz-main.c' + sources += files('src/fuzz/fuzz-main.c') endif sources += fuzz_generated_directives @@ -4213,11 +4211,14 @@ foreach tuple : fuzzers exe = executable( name, sources, - include_directories : [incs, include_directories('src/fuzz')], - link_with : link_with, - dependencies : [dependencies, - versiondep], - c_args : defs + test_cflags, + include_directories : [ + base.get('includes', []), + fuzzer.get('includes', includes), + include_directories('src/fuzz'), + ], + 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, install : false, build_by_default : fuzzer_build) diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build index 80061a559b..8c509458a0 100644 --- a/src/boot/efi/meson.build +++ b/src/boot/efi/meson.build @@ -411,9 +411,25 @@ if efi_arch[1] in ['ia32', 'x86_64', 'arm', 'aarch64'] }, ] fuzzers += [ - [files('fuzz-bcd.c', 'bcd.c', 'efi-string.c')], - [files('fuzz-efi-string.c', 'efi-string.c')], - [files('fuzz-efi-printf.c', 'efi-string.c')], + { + 'sources' : files( + '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 diff --git a/src/core/meson.build b/src/core/meson.build index 65b34bb467..15df4485ca 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -185,8 +185,12 @@ test_core_base = { } fuzzers += [ - [files('fuzz-unit-file.c'), - [libcore, - libshared], - [libmount]], + { + 'sources' : files('fuzz-unit-file.c'), + 'link_with' : [ + libcore, + libshared + ], + 'dependencies' : libmount, + }, ] diff --git a/src/journal-remote/meson.build b/src/journal-remote/meson.build index ac375741b0..74f01b0476 100644 --- a/src/journal-remote/meson.build +++ b/src/journal-remote/meson.build @@ -69,9 +69,12 @@ endif ############################################################ fuzzers += [ - [files('fuzz-journal-remote.c'), - [libsystemd_journal_remote, - libshared], - [], - [journal_includes]], + { + 'sources' : files('fuzz-journal-remote.c'), + 'link_with' : [ + libshared, + libsystemd_journal_remote, + ], + 'includes' : journal_includes, + }, ] diff --git a/src/journal/meson.build b/src/journal/meson.build index 8547a90222..c9ff54c991 100644 --- a/src/journal/meson.build +++ b/src/journal/meson.build @@ -111,40 +111,52 @@ tests += [ }, ] -fuzzers += [ - [files('fuzz-journald-audit.c', - 'fuzz-journald.c'), - [libjournal_core, - libshared], - [libselinux]], - - [files('fuzz-journald-kmsg.c', - 'fuzz-journald.c'), - [libjournal_core, - libshared], - [libselinux]], - - [files('fuzz-journald-native.c', - 'fuzz-journald.c'), - [libjournal_core, - libshared], - [libselinux]], - - [files('fuzz-journald-native-fd.c', - 'fuzz-journald.c'), - [libjournal_core, - libshared], - [libselinux]], - - [files('fuzz-journald-stream.c', - 'fuzz-journald.c'), - [libjournal_core, - libshared], - [libselinux]], +fuzzer_journald_base = { + 'link_with' : [libjournal_core, libshared], + 'dependencies' : [libselinux], +} - [files('fuzz-journald-syslog.c', - 'fuzz-journald.c'), - [libjournal_core, - libshared], - [libselinux]], +fuzzers += [ + { + 'sources' : files( + 'fuzz-journald-audit.c', + 'fuzz-journald.c', + ), + 'base' : fuzzer_journald_base, + }, + { + 'sources' : files( + 'fuzz-journald-kmsg.c', + 'fuzz-journald.c', + ), + 'base' : fuzzer_journald_base, + }, + { + 'sources' : files( + 'fuzz-journald-native.c', + 'fuzz-journald.c', + ), + 'base' : fuzzer_journald_base, + }, + { + 'sources' : files( + 'fuzz-journald-native-fd.c', + 'fuzz-journald.c', + ), + 'base' : fuzzer_journald_base, + }, + { + 'sources' : files( + 'fuzz-journald-stream.c', + 'fuzz-journald.c', + ), + 'base' : fuzzer_journald_base, + }, + { + 'sources' : files( + 'fuzz-journald-syslog.c', + 'fuzz-journald.c', + ), + 'base' : fuzzer_journald_base, + }, ] diff --git a/src/libsystemd-network/meson.build b/src/libsystemd-network/meson.build index 21dc85d8de..85d4afeb05 100644 --- a/src/libsystemd-network/meson.build +++ b/src/libsystemd-network/meson.build @@ -91,28 +91,33 @@ tests += [ }, ] -fuzzers += [ - [files('fuzz-dhcp-client.c'), - [libshared, - libsystemd_network]], - - [files('fuzz-dhcp6-client.c'), - [libshared, - libsystemd_network]], - - [files('fuzz-dhcp-server.c'), - [libsystemd_network, - libshared]], - - [files('fuzz-dhcp-server-relay.c'), - [libsystemd_network, - libshared]], - - [files('fuzz-lldp-rx.c'), - [libshared, - libsystemd_network]], +fuzzer_network_base = { + 'link_with' : [libshared, libsystemd_network], +} - [files('fuzz-ndisc-rs.c'), - [libshared, - libsystemd_network]], +fuzzers += [ + { + 'sources' : files('fuzz-dhcp-client.c'), + 'base' : fuzzer_network_base, + }, + { + 'sources' : files('fuzz-dhcp6-client.c'), + 'base' : fuzzer_network_base, + }, + { + 'sources' : files('fuzz-dhcp-server.c'), + 'base' : fuzzer_network_base, + }, + { + 'sources' : files('fuzz-dhcp-server-relay.c'), + 'base' : fuzzer_network_base, + }, + { + 'sources' : files('fuzz-lldp-rx.c'), + 'base' : fuzzer_network_base, + }, + { + 'sources' : files('fuzz-ndisc-rs.c'), + 'base' : fuzzer_network_base, + }, ] diff --git a/src/network/meson.build b/src/network/meson.build index 0b68b74b45..91572ba132 100644 --- a/src/network/meson.build +++ b/src/network/meson.build @@ -171,20 +171,21 @@ if conf.get('ENABLE_NETWORKD') == 1 endif endif +fuzzer_network_base = { + 'link_with' : [libnetworkd_core, libsystemd_network, networkd_link_with], + 'dependencies' : threads, + 'includes' : network_includes, +} + fuzzers += [ - [files('fuzz-netdev-parser.c'), - [libnetworkd_core, - libsystemd_network, - networkd_link_with], - [threads], - network_includes], - - [files('fuzz-network-parser.c'), - [libnetworkd_core, - libsystemd_network, - networkd_link_with], - [threads], - network_includes], + { + 'sources' : files('fuzz-netdev-parser.c'), + 'base' : fuzzer_network_base, + }, + { + 'sources' : files('fuzz-network-parser.c'), + 'base' : fuzzer_network_base, + }, ] test_network_base = { diff --git a/src/nspawn/meson.build b/src/nspawn/meson.build index 9d6bc21bbf..43e3e188b2 100644 --- a/src/nspawn/meson.build +++ b/src/nspawn/meson.build @@ -66,14 +66,18 @@ tests += [ }, ] -fuzzers += [ - [files('fuzz-nspawn-settings.c'), - [libshared, - libnspawn_core], - [libseccomp]], +fuzzer_nspawn_base = { + 'link_with' : [libshared, libnspawn_core], + 'dependencies' : libseccomp +} - [files('fuzz-nspawn-oci.c'), - [libshared, - libnspawn_core], - [libseccomp]], +fuzzers += [ + { + 'sources' : files('fuzz-nspawn-settings.c'), + 'base' : fuzzer_nspawn_base, + }, + { + 'sources' : files('fuzz-nspawn-oci.c'), + 'base' : fuzzer_nspawn_base, + }, ] diff --git a/src/resolve/meson.build b/src/resolve/meson.build index b5083685c4..8166118c74 100644 --- a/src/resolve/meson.build +++ b/src/resolve/meson.build @@ -187,23 +187,27 @@ tests += [ }, ] +fuzzer_resolve_base = { + 'link_with' : [libsystemd_resolve_core, libshared], + 'dependencies' : [lib_openssl_or_gcrypt, libm], +} + fuzzers += [ - [files('fuzz-dns-packet.c'), - [libsystemd_resolve_core, - libshared], - [lib_openssl_or_gcrypt, - libm]], - [files('fuzz-etc-hosts.c', - 'resolved-etc-hosts.c'), - [libsystemd_resolve_core, - libshared], - [lib_openssl_or_gcrypt, - libm]], - [files('fuzz-resource-record.c'), - [libsystemd_resolve_core, - libshared], - [lib_openssl_or_gcrypt, - libm]], + { + 'sources' : files('fuzz-dns-packet.c'), + 'base' : fuzzer_resolve_base, + }, + { + 'sources' : files( + 'fuzz-etc-hosts.c', + 'resolved-etc-hosts.c', + ), + 'base' : fuzzer_resolve_base, + }, + { + 'sources' : files('fuzz-resource-record.c'), + 'base' : fuzzer_resolve_base, + }, ] systemd_resolved_sources += files('resolved.c') diff --git a/src/systemctl/meson.build b/src/systemctl/meson.build index 30d0f57675..07049ca920 100644 --- a/src/systemctl/meson.build +++ b/src/systemctl/meson.build @@ -48,8 +48,12 @@ else endif fuzzers += [ - [files('fuzz-systemctl-parse-argv.c') + - systemctl_sources, - systemctl_link_with, - [], [], ['-DFUZZ_SYSTEMCTL_PARSE_ARGV']] + { + 'sources' : [ + files('fuzz-systemctl-parse-argv.c'), + systemctl_sources, + ], + 'link_with' : systemctl_link_with, + 'c_args' : '-DFUZZ_SYSTEMCTL_PARSE_ARGV', + }, ] diff --git a/src/udev/meson.build b/src/udev/meson.build index ab0489c6dd..3f4ab00ac9 100644 --- a/src/udev/meson.build +++ b/src/udev/meson.build @@ -164,22 +164,27 @@ simple_fuzzers += files( 'fuzz-udev-rule-parse-value.c', ) +fuzzer_udev_base = { + 'link_with' : [libudevd_core, libshared], + 'dependencies' : [threads, libacl], +} + fuzzers += [ - [files('net/fuzz-link-parser.c'), - [libudevd_core, - libshared], - [threads, - libacl], - udev_includes], - - [files('fuzz-udev-rules.c'), - [libudevd_core, - libshared], - [threads, - libacl]], - - [files('fido_id/fuzz-fido-id-desc.c', - 'fido_id/fido_id_desc.c')], + { + 'sources' : files('net/fuzz-link-parser.c'), + 'includes' : udev_includes, + 'base' : fuzzer_udev_base, + }, + { + 'sources' : files('fuzz-udev-rules.c'), + 'base' : fuzzer_udev_base, + }, + { + 'sources' : files( + 'fido_id/fuzz-fido-id-desc.c', + 'fido_id/fido_id_desc.c', + ), + }, ] test_libudev_base = { diff --git a/src/xdg-autostart-generator/meson.build b/src/xdg-autostart-generator/meson.build index 7f7d18bba6..c7e5660881 100644 --- a/src/xdg-autostart-generator/meson.build +++ b/src/xdg-autostart-generator/meson.build @@ -15,6 +15,10 @@ tests += [ ] fuzzers += [ - [files('fuzz-xdg-desktop.c', - 'xdg-autostart-service.c')], + { + 'sources' : files( + 'fuzz-xdg-desktop.c', + 'xdg-autostart-service.c', + ), + }, ] |