summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build27
-rw-r--r--src/boot/efi/meson.build22
-rw-r--r--src/core/meson.build12
-rw-r--r--src/journal-remote/meson.build13
-rw-r--r--src/journal/meson.build82
-rw-r--r--src/libsystemd-network/meson.build51
-rw-r--r--src/network/meson.build27
-rw-r--r--src/nspawn/meson.build22
-rw-r--r--src/resolve/meson.build36
-rw-r--r--src/systemctl/meson.build12
-rw-r--r--src/udev/meson.build35
-rw-r--r--src/xdg-autostart-generator/meson.build8
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',
+ ),
+ },
]