[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Fri Sep 11 05:06:08 UTC 2020


The branch, master has been updated
       via  ed9abf94b31 utils/asn1: avoid undefined behaviour warning
       via  47ee0c81f65 s4:torture/rpc: move test_fsrvp_seq_timeout as last
       via  9bbfdb11858 s4:torture/rpc: flip order of netlogon tests
       via  671fe10f212 s4:torture/rpc: run tests in the order that they're added
       via  6f5b0fef598 ctdb: Prevent man page duplication
       via  e60df214998 oss-fuzz: standardise on RUNPATH for the static-ish binaries
      from  53a368c58d0 idmap_ad: Honor "client ldap sasl wrapping" config setting

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ed9abf94b3167a1a61b5da163e9b07b06c8a457b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Sun Sep 6 09:35:49 2020 +1200

    utils/asn1: avoid undefined behaviour warning
    
    UBSAN does not like an int >= 1<<24 being shifted left.
    We check the overflow in the very next line.
    
    Credit to OSS-Fuzz.
    
    REF: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25436
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Fri Sep 11 05:05:59 UTC 2020 on sn-devel-184

commit 47ee0c81f65108216234f738c3ada6782931dc47
Author: David Disseldorp <ddiss at samba.org>
Date:   Tue Sep 8 01:20:51 2020 +0200

    s4:torture/rpc: move test_fsrvp_seq_timeout as last
    
    test_fsrvp_seq_timeout may see share snapshots left-over, which can
    cause problems if subsequent tests expect a clean slate
    (i.e. enum_created).
    
    Signed-off-by: David Disseldorp <ddiss at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 9bbfdb11858fd6cdecdfedb3fcbf7cde219e3dd9
Author: David Disseldorp <ddiss at samba.org>
Date:   Sun Sep 6 18:46:38 2020 +0200

    s4:torture/rpc: flip order of netlogon tests
    
    The previous change to not run rpc tests in reverse order results in
    the following failure:
      Testing netr_LogonGetDomainInfo
      UNEXPECTED(failure): samba4.rpc.netlogon with
                           seal,padcheck.netlogon.GetDomainInfo(ad_dc)
      REASON: Exception: ../../source4/torture/rpc/netlogon.c:320:
    	      Expression `plain_pass != ((void *)0)' failed: plain_pass
    
    Restore the dependent order of netlogon tests by reversing the
    torture_rpc_tcase_add_test*() calls for the suite.
    
    Signed-off-by: David Disseldorp <ddiss at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 671fe10f212b013af844ad4e3291322082b05619
Author: David Disseldorp <ddiss at samba.org>
Date:   Sun Sep 6 10:57:41 2020 +0200

    s4:torture/rpc: run tests in the order that they're added
    
    torture_rpc_tcase_add_test*() uses DLIST_ADD(), which sees them executed
    in reverse order to which they're added. Use DLIST_ADD_END() instead to
    fix this.
    
    Signed-off-by: David Disseldorp <ddiss at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 6f5b0fef59850477ad30c2b5063b431725716056
Author: David Mulder <dmulder at suse.com>
Date:   Thu Sep 10 11:50:53 2020 -0600

    ctdb: Prevent man page duplication
    
    The new waf detects a duplicate instance of
    ctdb_mutex_ceph_rados_helper.7.xml, which is due
    to manpages_extra being a pointer to
    manpages_misc, therefore each call to build()
    added duplicate entries to the manpages_misc
    global entry.
    
    Signed-off-by: David Mulder <dmulder at suse.com>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit e60df214998afc145ca482cab184691b3ddc3bb2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Aug 26 15:37:57 2020 +1200

    oss-fuzz: standardise on RUNPATH for the static-ish binaries
    
    We use ld.bfd for the coverage builds, rather than the faster ld.gold.
    
    We run the oss-fuzz autobuild target on Ubuntu 16.04 to more closely
    mirror the environment provided by the Google oss-fuzz build
    container.
    
    On Ubuntu 16.04, when linking with ld.bfd built binaries get a RPATH,
    but builds in Ubuntu 18.04 and those using ld.gold get a RUNPATH.
    
    Just convert them all to RUNPATH to make the check_build.sh test (run
    by the oss-fuzz autobuild target) easier.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>

-----------------------------------------------------------------------

Summary of changes:
 ctdb/wscript                        |  2 +-
 lib/fuzzing/oss-fuzz/build_samba.sh | 11 +++++
 lib/util/asn1.c                     |  6 ++-
 source4/torture/rpc/fsrvp.c         |  4 +-
 source4/torture/rpc/netlogon.c      | 82 ++++++++++++++++++-------------------
 source4/torture/rpc/rpc.c           | 10 ++---
 6 files changed, 65 insertions(+), 50 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/wscript b/ctdb/wscript
index 35c8c0622fc..b883990c55e 100644
--- a/ctdb/wscript
+++ b/ctdb/wscript
@@ -705,7 +705,7 @@ def build(bld):
                        (sed_expr1, sed_expr2, sed_expr3, sed_expr4, sed_expr5,
                         sed_expr6, sed_expr7, sed_expr8)
 
-    manpages_extra = manpages_misc
+    manpages_extra = list(manpages_misc)
     if bld.env.etcd_reclock:
         manpages_extra += manpages_etcd
     if bld.env.HAVE_LIBRADOS:
diff --git a/lib/fuzzing/oss-fuzz/build_samba.sh b/lib/fuzzing/oss-fuzz/build_samba.sh
index 333e8c38561..b06e03c4903 100755
--- a/lib/fuzzing/oss-fuzz/build_samba.sh
+++ b/lib/fuzzing/oss-fuzz/build_samba.sh
@@ -88,6 +88,17 @@ do
     # Copy any system libraries needed by this fuzzer to $OUT/lib
     ldd $OUT/$bin | cut -f 2 -d '>' | cut -f 1 -d \( | cut -f 2 -d  ' ' | xargs -i cp \{\} $OUT/lib/
 
+    # Change any RPATH to RUNPATH.
+    #
+    # We use ld.bfd for the coverage builds, rather than the faster ld.gold.
+    #
+    # On Ubuntu 16.04, used for the oss-fuzz build, when linking with
+    # ld.bfd the binaries get a RPATH, but builds in Ubuntu 18.04
+    # ld.bfd and those using ld.gold get a RUNPATH.
+    #
+    # Just convert them all to RUNPATH to make the check_build.sh test
+    # easier.
+    chrpath -c $OUT/$bin
     # Change RUNPATH so that the copied libraries are found on the
     # runner
     chrpath -r '$ORIGIN/lib' $OUT/$bin
diff --git a/lib/util/asn1.c b/lib/util/asn1.c
index 6b1b4bc2877..9ab9e1b0844 100644
--- a/lib/util/asn1.c
+++ b/lib/util/asn1.c
@@ -1071,7 +1071,11 @@ bool asn1_read_enumerated(struct asn1_data *data, int *v)
 			data->has_error = true;
 			return false;
 		}
-		*v = (*v << 8) + b;
+		/*
+		 * To please/fool the Undefined Behaviour Sanitizer we cast to
+		 * unsigned for the left shift.
+		 */
+		*v = ((unsigned int)*v << 8) + b;
 		if (*v < 0) {
 			/* ASN1_ENUMERATED can't be -ve. */
 			data->has_error = true;
diff --git a/source4/torture/rpc/fsrvp.c b/source4/torture/rpc/fsrvp.c
index 71750114a18..00e690de536 100644
--- a/source4/torture/rpc/fsrvp.c
+++ b/source4/torture/rpc/fsrvp.c
@@ -945,8 +945,6 @@ struct torture_suite *torture_rpc_fsrvp(TALLOC_CTX *mem_ctx)
 
 	torture_rpc_tcase_add_test(tcase, "share_sd",
 				   test_fsrvp_share_sd);
-	torture_rpc_tcase_add_test(tcase, "seq_timeout",
-				   test_fsrvp_seq_timeout);
 	torture_rpc_tcase_add_test(tcase, "enum_created",
 				   test_fsrvp_enum_created);
 	torture_rpc_tcase_add_test(tcase, "sc_share_io",
@@ -963,6 +961,8 @@ struct torture_suite *torture_rpc_fsrvp(TALLOC_CTX *mem_ctx)
 				   test_fsrvp_get_version);
 	torture_rpc_tcase_add_test(tcase, "is_path_supported",
 				   test_fsrvp_is_path_supported);
+	torture_rpc_tcase_add_test(tcase, "seq_timeout",
+				   test_fsrvp_seq_timeout);
 
 	return suite;
 }
diff --git a/source4/torture/rpc/netlogon.c b/source4/torture/rpc/netlogon.c
index 87c6ed548cb..c508ecacd50 100644
--- a/source4/torture/rpc/netlogon.c
+++ b/source4/torture/rpc/netlogon.c
@@ -4926,51 +4926,51 @@ struct torture_suite *torture_rpc_netlogon(TALLOC_CTX *mem_ctx)
 	tcase = torture_suite_add_machine_bdc_rpc_iface_tcase(suite, "netlogon",
 						  &ndr_table_netlogon, TEST_MACHINE_NAME);
 
-	torture_rpc_tcase_add_test(tcase, "Broken RPC binding handle",
-				   test_netr_broken_binding_handle);
+	torture_rpc_tcase_add_test_creds(tcase, "SetupCredentialsDowngrade", test_SetupCredentialsDowngrade);
+	torture_rpc_tcase_add_test(tcase, "lsa_over_netlogon", test_lsa_over_netlogon);
 
-	torture_rpc_tcase_add_test(tcase, "LogonUasLogon", test_LogonUasLogon);
-	torture_rpc_tcase_add_test(tcase, "LogonUasLogoff", test_LogonUasLogoff);
-	torture_rpc_tcase_add_test_creds(tcase, "SamLogon", test_SamLogon);
-	torture_rpc_tcase_add_test_creds(tcase, "invalidAuthenticate2", test_invalidAuthenticate2);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeGlobal", test_ServerReqChallengeGlobal);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal", test_ServerReqChallengeReuseGlobal);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal2", test_ServerReqChallengeReuseGlobal2);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal3", test_ServerReqChallengeReuseGlobal3);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal4", test_ServerReqChallengeReuseGlobal4);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuse", test_ServerReqChallengeReuse);
-	torture_rpc_tcase_add_test_creds(tcase, "SetPassword", test_SetPassword);
-	torture_rpc_tcase_add_test_creds(tcase, "SetPassword2", test_SetPassword2);
-	torture_rpc_tcase_add_test_creds(tcase, "SetPassword2_AES", test_SetPassword2_AES);
-	torture_rpc_tcase_add_test_creds(tcase, "GetPassword", test_GetPassword);
-	torture_rpc_tcase_add_test_creds(tcase, "GetTrustPasswords", test_GetTrustPasswords);
-	torture_rpc_tcase_add_test_creds(tcase, "GetDomainInfo", test_GetDomainInfo);
-	torture_rpc_tcase_add_test_creds(tcase, "DatabaseSync", test_DatabaseSync);
-	torture_rpc_tcase_add_test_creds(tcase, "DatabaseDeltas", test_DatabaseDeltas);
-	torture_rpc_tcase_add_test_creds(tcase, "DatabaseRedo", test_DatabaseRedo);
-	torture_rpc_tcase_add_test_creds(tcase, "AccountDeltas", test_AccountDeltas);
-	torture_rpc_tcase_add_test_creds(tcase, "AccountSync", test_AccountSync);
-	torture_rpc_tcase_add_test(tcase, "GetDcName", test_GetDcName);
-	torture_rpc_tcase_add_test(tcase, "ManyGetDCName", test_ManyGetDCName);
-	torture_rpc_tcase_add_test(tcase, "GetAnyDCName", test_GetAnyDCName);
-	torture_rpc_tcase_add_test_creds(tcase, "DatabaseSync2", test_DatabaseSync2);
-	torture_rpc_tcase_add_test(tcase, "DsrEnumerateDomainTrusts", test_DsrEnumerateDomainTrusts);
-	torture_rpc_tcase_add_test(tcase, "NetrEnumerateTrustedDomains", test_netr_NetrEnumerateTrustedDomains);
-	torture_rpc_tcase_add_test(tcase, "NetrEnumerateTrustedDomainsEx", test_netr_NetrEnumerateTrustedDomainsEx);
+	torture_rpc_tcase_add_test_creds(tcase, "GetForestTrustInformation", test_netr_GetForestTrustInformation);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerGetTrustInfo_AES", test_netr_ServerGetTrustInfo_AES);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerGetTrustInfo", test_netr_ServerGetTrustInfo);
+	torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesExW", test_netr_DsRAddressToSitenamesExW);
+	torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesW", test_netr_DsRAddressToSitenamesW);
+	torture_rpc_tcase_add_test(tcase, "DsrGetDcSiteCoverageW", test_netr_DsrGetDcSiteCoverageW);
+	torture_rpc_tcase_add_test(tcase, "DsRGetDCNameEx2", test_netr_DsRGetDCNameEx2);
+	torture_rpc_tcase_add_test(tcase, "DsRGetDCNameEx", test_netr_DsRGetDCNameEx);
+	torture_rpc_tcase_add_test(tcase, "DsRGetDCName", test_netr_DsRGetDCName);
 	test = torture_rpc_tcase_add_test_creds(tcase, "GetDomainInfo_async", test_GetDomainInfo_async);
 	test->dangerous = true;
-	torture_rpc_tcase_add_test(tcase, "DsRGetDCName", test_netr_DsRGetDCName);
-	torture_rpc_tcase_add_test(tcase, "DsRGetDCNameEx", test_netr_DsRGetDCNameEx);
-	torture_rpc_tcase_add_test(tcase, "DsRGetDCNameEx2", test_netr_DsRGetDCNameEx2);
-	torture_rpc_tcase_add_test(tcase, "DsrGetDcSiteCoverageW", test_netr_DsrGetDcSiteCoverageW);
-	torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesW", test_netr_DsRAddressToSitenamesW);
-	torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesExW", test_netr_DsRAddressToSitenamesExW);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerGetTrustInfo", test_netr_ServerGetTrustInfo);
-	torture_rpc_tcase_add_test_creds(tcase, "ServerGetTrustInfo_AES", test_netr_ServerGetTrustInfo_AES);
-	torture_rpc_tcase_add_test_creds(tcase, "GetForestTrustInformation", test_netr_GetForestTrustInformation);
+	torture_rpc_tcase_add_test(tcase, "NetrEnumerateTrustedDomainsEx", test_netr_NetrEnumerateTrustedDomainsEx);
+	torture_rpc_tcase_add_test(tcase, "NetrEnumerateTrustedDomains", test_netr_NetrEnumerateTrustedDomains);
+	torture_rpc_tcase_add_test(tcase, "DsrEnumerateDomainTrusts", test_DsrEnumerateDomainTrusts);
+	torture_rpc_tcase_add_test_creds(tcase, "DatabaseSync2", test_DatabaseSync2);
+	torture_rpc_tcase_add_test(tcase, "GetAnyDCName", test_GetAnyDCName);
+	torture_rpc_tcase_add_test(tcase, "ManyGetDCName", test_ManyGetDCName);
+	torture_rpc_tcase_add_test(tcase, "GetDcName", test_GetDcName);
+	torture_rpc_tcase_add_test_creds(tcase, "AccountSync", test_AccountSync);
+	torture_rpc_tcase_add_test_creds(tcase, "AccountDeltas", test_AccountDeltas);
+	torture_rpc_tcase_add_test_creds(tcase, "DatabaseRedo", test_DatabaseRedo);
+	torture_rpc_tcase_add_test_creds(tcase, "DatabaseDeltas", test_DatabaseDeltas);
+	torture_rpc_tcase_add_test_creds(tcase, "DatabaseSync", test_DatabaseSync);
+	torture_rpc_tcase_add_test_creds(tcase, "GetDomainInfo", test_GetDomainInfo);
+	torture_rpc_tcase_add_test_creds(tcase, "GetTrustPasswords", test_GetTrustPasswords);
+	torture_rpc_tcase_add_test_creds(tcase, "GetPassword", test_GetPassword);
+	torture_rpc_tcase_add_test_creds(tcase, "SetPassword2_AES", test_SetPassword2_AES);
+	torture_rpc_tcase_add_test_creds(tcase, "SetPassword2", test_SetPassword2);
+	torture_rpc_tcase_add_test_creds(tcase, "SetPassword", test_SetPassword);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuse", test_ServerReqChallengeReuse);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal4", test_ServerReqChallengeReuseGlobal4);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal3", test_ServerReqChallengeReuseGlobal3);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal2", test_ServerReqChallengeReuseGlobal2);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeReuseGlobal", test_ServerReqChallengeReuseGlobal);
+	torture_rpc_tcase_add_test_creds(tcase, "ServerReqChallengeGlobal", test_ServerReqChallengeGlobal);
+	torture_rpc_tcase_add_test_creds(tcase, "invalidAuthenticate2", test_invalidAuthenticate2);
+	torture_rpc_tcase_add_test_creds(tcase, "SamLogon", test_SamLogon);
+	torture_rpc_tcase_add_test(tcase, "LogonUasLogoff", test_LogonUasLogoff);
+	torture_rpc_tcase_add_test(tcase, "LogonUasLogon", test_LogonUasLogon);
 
-	torture_rpc_tcase_add_test(tcase, "lsa_over_netlogon", test_lsa_over_netlogon);
-	torture_rpc_tcase_add_test_creds(tcase, "SetupCredentialsDowngrade", test_SetupCredentialsDowngrade);
+	torture_rpc_tcase_add_test(tcase, "Broken RPC binding handle",
+				   test_netr_broken_binding_handle);
 
 	return suite;
 }
diff --git a/source4/torture/rpc/rpc.c b/source4/torture/rpc/rpc.c
index 4a01eb2480c..243e5d3f207 100644
--- a/source4/torture/rpc/rpc.c
+++ b/source4/torture/rpc/rpc.c
@@ -414,7 +414,7 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test(
 	test->data = NULL;
 	test->fn = fn;
 
-	DLIST_ADD(tcase->tcase.tests, test);
+	DLIST_ADD_END(tcase->tcase.tests, test);
 
 	return test;
 }
@@ -435,7 +435,7 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_creds(
 	test->data = NULL;
 	test->fn = fn;
 
-	DLIST_ADD(tcase->tcase.tests, test);
+	DLIST_ADD_END(tcase->tcase.tests, test);
 
 	return test;
 }
@@ -457,7 +457,7 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_join(
 	test->data = NULL;
 	test->fn = fn;
 
-	DLIST_ADD(tcase->tcase.tests, test);
+	DLIST_ADD_END(tcase->tcase.tests, test);
 
 	return test;
 }
@@ -480,7 +480,7 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_ex(
 	test->data = userdata;
 	test->fn = fn;
 
-	DLIST_ADD(tcase->tcase.tests, test);
+	DLIST_ADD_END(tcase->tcase.tests, test);
 
 	return test;
 }
@@ -536,7 +536,7 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_setup(
 	test->data = userdata;
 	test->fn = fn;
 
-	DLIST_ADD(tcase->tcase.tests, test);
+	DLIST_ADD_END(tcase->tcase.tests, test);
 
 	return test;
 }


-- 
Samba Shared Repository



More information about the samba-cvs mailing list