diff --git a/meson.build b/meson.build
index fe161e5..04b461d 100644
--- a/meson.build
+++ b/meson.build
@@ -2804,7 +2804,7 @@ foreach tuple : sanitizers
                                 test('@0@:@1@:@2@'.format(b, c, sanitizer),
                                      env,
                                      args : [exe.full_path(),
-                                             join_paths(meson.source_root(), 'test/fuzz', p)])
+                                             join_paths(meson.source_root(), p)])
                         endif
                 endforeach
         endif
diff --git a/test/fuzz/meson.build b/test/fuzz/meson.build
index b98436a..56d0f69 100644
--- a/test/fuzz/meson.build
+++ b/test/fuzz/meson.build
@@ -11,31 +11,23 @@ sanitize_address = custom_target(
 
 sanitizers = [['address', sanitize_address]]
 
-fuzz_regression_tests = '''
-        fuzz-dns-packet/issue-7888
-        fuzz-dns-packet/oss-fuzz-5465
-        fuzz-journal-remote/crash-5a8f03d4c3a46fcded39527084f437e8e4b54b76
-        fuzz-journal-remote/crash-96dee870ea66d03e89ac321eee28ea63a9b9aa45
-        fuzz-journal-remote/oss-fuzz-8659
-        fuzz-journal-remote/oss-fuzz-8686
-        fuzz-journald-syslog/github-9795
-        fuzz-journald-syslog/github-9820
-        fuzz-journald-syslog/github-9827
-        fuzz-journald-syslog/github-9829
-        fuzz-ndisc-rs/timeout-2815b773c712fa33bea62f541dfa3017c64ea2f1
-        fuzz-ndisc-rs/timeout-61fff7fd1e5dcc07e1b656baab29065ce634ad5b
-        fuzz-unit-file/oss-fuzz-6884
-        fuzz-unit-file/oss-fuzz-6885
-        fuzz-unit-file/oss-fuzz-6886
-        fuzz-unit-file/oss-fuzz-6892
-        fuzz-unit-file/oss-fuzz-6897
-        fuzz-unit-file/oss-fuzz-6897-evverx
-        fuzz-unit-file/oss-fuzz-6908
-        fuzz-unit-file/oss-fuzz-6917
-        fuzz-unit-file/oss-fuzz-6977
-        fuzz-unit-file/oss-fuzz-6977-unminimized
-        fuzz-unit-file/oss-fuzz-7004
-        fuzz-unit-file/oss-fuzz-8064
-        fuzz-unit-file/oss-fuzz-8827
-        fuzz-unit-file/oss-fuzz-10007
-'''.split()
+if git.found()
+        out = run_command(
+                git,
+                '--git-dir=@0@/.git'.format(meson.source_root()),
+                 'ls-files', ':/test/fuzz/*/*')
+else
+        out = run_command(
+                'sh', '-c', 'ls @0@/*/*'.format(meson.current_source_dir()))
+endif
+
+fuzz_regression_tests = []
+foreach p : out.stdout().split()
+        # Remove the last entry which is ''.
+        #
+        # Also, backslashes get mangled, so skip test. See
+        # https://github.com/mesonbuild/meson/issues/1564.
+        if not p.contains('\\')
+                fuzz_regression_tests += p
+        endif
+endforeach