build: Set fuzzer=True on fuzzer binaries
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Fri, 1 Nov 2019 04:18:24 +0000 (17:18 +1300)
committerDouglas Bagnall <dbagnall@samba.org>
Wed, 20 Nov 2019 23:19:35 +0000 (23:19 +0000)
This ensures that the binaries are the only binaries built
when configured for fuzzing.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
buildtools/wafsamba/wafsamba.py
lib/fuzzing/wscript_build

index 7081f382eaaf64c9054296663f8c3fa69090a2e4..3e19b832e11e6d52f02a28d0e8ea1b88daaf7923 100644 (file)
@@ -360,13 +360,24 @@ def SAMBA_BINARY(bld, binname, source,
                  subdir=None,
                  install=True,
                  install_path=None,
-                 enabled=True):
+                 enabled=True,
+                 fuzzer=False):
     '''define a Samba binary'''
 
     if not enabled:
         SET_TARGET_TYPE(bld, binname, 'DISABLED')
         return
 
+    # Fuzzing builds do not build normal binaries
+    # however we must build asn1compile etc
+
+    if not use_hostcc and bld.env.enable_libfuzzer != fuzzer:
+        SET_TARGET_TYPE(bld, binname, 'DISABLED')
+        return
+
+    if fuzzer:
+        install = False
+
     if not SET_TARGET_TYPE(bld, binname, 'BINARY'):
         return
 
index 7305ce41262d7bfdc20ce7bf2a961c1c6580d108..00a263ef8774e739ef3bd95b50d3bd0c0dc15977 100644 (file)
@@ -9,47 +9,34 @@ bld.SAMBA_SUBSYSTEM('fuzzing',
 bld.SAMBA_BINARY('fuzz_tiniparser',
                  source='fuzz_tiniparser.c',
                  deps='fuzzing tiniparser talloc',
-                 install=False,
-                 enabled=bld.env.enable_libfuzzer)
+                 fuzzer=True)
 
 bld.SAMBA_BINARY('fuzz_oLschema2ldif',
                  source='fuzz_oLschema2ldif.c',
                  deps='fuzzing oLschema2ldif-lib',
-                 install=False,
-                 enabled=bld.env.enable_libfuzzer,
-                 )
+                 fuzzer=True)
 
 bld.SAMBA_BINARY('fuzz_reg_parse',
                  source='fuzz_reg_parse.c',
                  deps='fuzzing samba3-util smbconf REGFIO',
-                 install=False,
-                 enabled=bld.env.enable_libfuzzer,
-                 )
+                 fuzzer=True)
 
 bld.SAMBA_BINARY('fuzz_regfio',
                  source='fuzz_regfio.c',
                  deps='fuzzing samba3-util smbconf REGFIO',
-                 install=False,
-                 enabled=bld.env.enable_libfuzzer,
-                 )
+                 fuzzer=True)
 
 bld.SAMBA_BINARY('fuzz_lzxpress',
                  source='fuzz_lzxpress.c',
                  deps='fuzzing LZXPRESS',
-                 install=False,
-                 enabled=bld.env.enable_libfuzzer,
-                 )
+                 fuzzer=True)
 
 bld.SAMBA_BINARY('fuzz_ldap_decode',
                  source='fuzz_ldap_decode.c',
                  deps='fuzzing cli-ldap',
-                 install=False,
-                 enabled=bld.env.enable_libfuzzer,
-                 )
+                 fuzzer=True)
 
 bld.SAMBA_BINARY('fuzz_ldb_parse_tree',
                  source='fuzz_ldb_parse_tree.c',
                  deps='fuzzing ldb',
-                 install=False,
-                 enabled=bld.env.enable_libfuzzer
-                 )
+                 fuzzer=True)