From e38b75a50f79c1d1ea2d7d4489896ca5aa16d9d9 Mon Sep 17 00:00:00 2001 From: Joseph Sutton Date: Tue, 14 Jun 2022 17:19:00 +1200 Subject: [PATCH 03/15] CVE-2022-32743 s4:torture/rpc: Fix tests to match Windows BUG: https://bugzilla.samba.org/show_bug.cgi?id=14833 Signed-off-by: Joseph Sutton Reviewed-by: Douglas Bagnall --- selftest/knownfail.d/netlogon-dns-host-name | 9 +++++++++ source4/torture/rpc/netlogon.c | 12 +++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/selftest/knownfail.d/netlogon-dns-host-name b/selftest/knownfail.d/netlogon-dns-host-name index 2d0a0ec..0164a7c 100644 --- a/selftest/knownfail.d/netlogon-dns-host-name +++ b/selftest/knownfail.d/netlogon-dns-host-name @@ -1,2 +1,11 @@ ^samba.tests.py_credentials.samba.tests.py_credentials.PyCredentialsTests.test_set_dns_hostname_invalid_suffix\( ^samba.tests.py_credentials.samba.tests.py_credentials.PyCredentialsTests.test_set_dns_hostname_with_flag\( +^samba4.rpc.netlogon on ncacn_ip_tcp with bigendian.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon on ncacn_ip_tcp with seal,padcheck.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon on ncacn_ip_tcp with validate.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon on ncacn_np with bigendian.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon on ncacn_np with seal,padcheck.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon on ncacn_np with validate.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon with bigendian.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon with seal,padcheck.netlogon.GetDomainInfo\( +^samba4.rpc.netlogon with validate.netlogon.GetDomainInfo\( diff --git a/source4/torture/rpc/netlogon.c b/source4/torture/rpc/netlogon.c index 11f950d..59d7feb 100644 --- a/source4/torture/rpc/netlogon.c +++ b/source4/torture/rpc/netlogon.c @@ -5251,9 +5251,9 @@ static bool test_GetDomainInfo(struct torture_context *tctx, torture_assert(tctx, ldb_msg_find_attr_as_string(res[0], "operatingSystemServicePack", NULL) == NULL, "'operatingSystemServicePack' shouldn't stick!"); - torture_assert(tctx, - ldb_msg_find_attr_as_string(res[0], "operatingSystemVersion", NULL) == NULL, - "'operatingSystemVersion' shouldn't stick!"); + torture_assert_str_equal(tctx, + ldb_msg_find_attr_as_string(res[0], "operatingSystemVersion", NULL), + version_str, "'operatingSystemVersion' wrong!"); /* The DNS host name shouldn't have been updated by the server */ @@ -5387,9 +5387,11 @@ static bool test_GetDomainInfo(struct torture_context *tctx, torture_assert(tctx, odiT->domainname.string != NULL, "trust_list domainname should be valid"); - if (texT->trust_type == LSA_TRUST_TYPE_DOWNLEVEL) { + if (texT->trust_type == LSA_TRUST_TYPE_DOWNLEVEL || + texT->trust_type == LSA_TRUST_TYPE_MIT) + { torture_assert(tctx, odiT->dns_domainname.string == NULL, - "trust_list dns_domainname should be NULL for downlevel"); + "trust_list dns_domainname should be NULL for downlevel or MIT"); } else { torture_assert(tctx, odiT->dns_domainname.string != NULL, "trust_list dns_domainname should be valid for uplevel"); -- 1.8.3.1