1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
samba-mirror/librpc/idl/wscript_build
Douglas Bagnall 7b265830ad lib/fuzzing: add fuzz_ndr_X
This NDR fuzzer links with each "interface" in the IDL files to
create avsingle binary.  This tries to matches what the fuzzing
engines desire.

It started as a copy of ndrdump but very little of that remains
in place.

The fancy build rules try to avoid needing a lof of boilerplate
in the wscript_build files and ensure new fuzzers are generated
and run when new IDL is added automatically.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Pair-programmed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2019-12-10 07:50:28 +00:00

181 lines
6.3 KiB
Python

#!/usr/bin/env python
bld.SAMBA_PIDL_LIST('PIDL',
'''drsuapi.idl epmapper.idl
eventlog.idl
browser.idl dssetup.idl frsapi.idl
spoolss.idl
dnsserver.idl
samr.idl srvsvc.idl winreg.idl
mgmt.idl netlogon.idl
svcctl.idl wkssvc.idl eventlog6.idl backupkey.idl
witness.idl clusapi.idl
mdssvc.idl''',
options='--header --ndr-parser --samba3-ndr-server --server --client --python',
output_dir='../gen_ndr')
# The interface names here are not the same as the IDL name, so the
# auto-genration of the fuzzer fails to link
bld.SAMBA_PIDL_LIST('PIDL',
'''echo.idl
fsrvp.idl
lsa.idl
winspool.idl''',
options='--header --ndr-parser --samba3-ndr-server --server --client --python',
output_dir='../gen_ndr',
generate_fuzzers=False)
# Services that we only have a client for
bld.SAMBA_PIDL_LIST('PIDL',
'''atsvc.idl''',
options='--header --ndr-parser --client --python',
output_dir='../gen_ndr')
# Services that we only have a server in the source3 style
bld.SAMBA_PIDL_LIST('PIDL',
'''initshutdown.idl ntsvcs.idl''',
options='--header --ndr-parser --client --python --samba3-ndr-server',
output_dir='../gen_ndr')
# The interface names here are not the same as the IDL name, so the
# auto-genration of the fuzzer fails to link
bld.SAMBA_PIDL_LIST('PIDL',
'''dfs.idl''',
options='--header --ndr-parser --client --python --samba3-ndr-server',
output_dir='../gen_ndr',
generate_fuzzers=False)
# Services that we only have a server in the source4 style.
bld.SAMBA_PIDL_LIST('PIDL',
'''unixinfo.idl''',
options='--header --ndr-parser --client --python --server',
output_dir='../gen_ndr')
# DCOM stuff
# The interface names here are not the same as the IDL name, so the
# auto-genration of the fuzzer fails to link
bld.SAMBA_PIDL_LIST('PIDL',
'''oxidresolver.idl remact.idl''',
options='--header --ndr-parser --client',
output_dir='../gen_ndr',
generate_fuzzers=False)
# The interface names here are not the same as the IDL name, so the
# auto-genration of the fuzzer fails to link
bld.SAMBA_PIDL_LIST('PIDL',
'wmi.idl dcom.idl',
options='--header --ndr-parser --server --client --dcom-proxy --com-header',
output_dir='../gen_ndr',
generate_fuzzers=False)
# DCE/RPC protocols which Samba does not implement a client or server
# for
bld.SAMBA_PIDL_LIST('PIDL',
'''
audiosrv.idl
efs.idl
frstrans.idl
frsrpc.idl
keysvc.idl
msgsvc.idl
policyagent.idl
rot.idl
scerpc.idl
trkwks.idl
w32time.idl
wzcsvc.idl
''',
options='--header --ndr-parser',
output_dir='../gen_ndr')
# The interface names here are not the same as the IDL name, so the
# auto-genration of the fuzzer fails to link
bld.SAMBA_PIDL_LIST('PIDL',
'''
dsbackup.idl
orpc.idl
''',
options='--header --ndr-parser',
output_dir='../gen_ndr',
generate_fuzzers=False)
# Non-DCE/RPC protocols encoded in IDL for Samba or helper IDLs for
# DCE/RPC protocols (eg defining constands or structures but not
# functions)
bld.SAMBA_PIDL_LIST('PIDL',
'''
bkupblobs.idl
cab.idl
dbgidl.idl
file_id.idl
fscc.idl
fsrvp_state.idl
named_pipe_auth.idl
negoex.idl
notify.idl
ntprinting.idl
printcap.idl
rap.idl
schannel.idl
smb2_lease_struct.idl
''',
options='--header --ndr-parser',
output_dir='../gen_ndr')
# The interface names here are not the same as the IDL name, so the
# auto-genration of the fuzzer fails to link
bld.SAMBA_PIDL_LIST('PIDL',
'''
ioctl.idl
nfs4acl.idl
quota.idl
''',
options='--header --ndr-parser',
output_dir='../gen_ndr',
generate_fuzzers=False)
# Non-DCE/RPC protocls with Python bindings
# (for structures or constants)
bld.SAMBA_PIDL_LIST('PIDL',
'''
auth.idl
dcerpc.idl
dfsblobs.idl
dns.idl
dnsp.idl
drsblobs.idl
idmap.idl
krb5pac.idl
messaging.idl
misc.idl
nbt.idl
ntlmssp.idl
preg.idl
security.idl
server_id.idl
smb_acl.idl
xattr.idl
''',
options='--header --ndr-parser --python',
output_dir='../gen_ndr')
bld.SAMBA_PIDL_LIST('PIDL',
'''
windows_event_ids.idl
''',
options='--header --ndr-parser --python',
output_dir='../gen_ndr',
generate_tables=False)
bld.SAMBA_PIDL_LIST('PIDL',
'winbind.idl',
options='--header --ndr-parser --samba3-ndr-server --client --python',
output_dir='../gen_ndr')