[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Mon Dec 27 16:39:01 UTC 2021


The branch, master has been updated
       via  9d2bf015378 s3:libsmb: fix signing regression SMBC_server_internal()
       via  0a808f6b53f s4:selftest: run libsmbclient.noanon_list against maptoguest
       via  59e436297b0 s4:torture/libsmbclient: add libsmbclient.noanon_list test
       via  648b476dcdb selftest/Samba3: enable SMB1 for maptoguest
      from  9a68025ad39 s4:rpc_server/netlogon: adjust the valid_flags based on dsdb_dc_functional_level()

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


- Log -----------------------------------------------------------------
commit 9d2bf015378c5bc630c92618e034c5eba95cc6b4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 21 11:19:40 2021 +0100

    s3:libsmb: fix signing regression SMBC_server_internal()
    
    commit d0062d312cbbf80afd78143ca5c0be68f2d72b03 introduced
    SMBC_ENCRYPTLEVEL_DEFAULT as default, but the logic to enforce
    signing wasn't adjusted, so we required smb signing by default.
    
    That broke guest authentication for libsmbclient using applications.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14935
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Mon Dec 27 16:38:11 UTC 2021 on sn-devel-184

commit 0a808f6b53f50f426bd706f5327f610bb9e5967d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 21 12:05:13 2021 +0100

    s4:selftest: run libsmbclient.noanon_list against maptoguest
    
    This demonstrates the problem with guest access being rejected
    by default.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14935
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 59e436297b0a4baa01e4e8a4bbb9c0bc9d7e1f29
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 21 12:04:30 2021 +0100

    s4:torture/libsmbclient: add libsmbclient.noanon_list test
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14935
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 648b476dcdb6f378b627266cb787fd8f38fba56a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Dec 21 14:39:25 2021 +0100

    selftest/Samba3: enable SMB1 for maptoguest
    
    guest authentication is an old school concept,
    so we should make sure it also works with SMB1.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14935
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

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

Summary of changes:
 selftest/knownfail.d/smb1-tests             | 10 +++---
 selftest/target/Samba3.pm                   |  1 +
 source3/libsmb/libsmb_server.c              |  2 +-
 source4/selftest/tests.py                   | 16 +++++++++
 source4/torture/libsmbclient/libsmbclient.c | 50 +++++++++++++++++++++++++++++
 5 files changed, 72 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/selftest/knownfail.d/smb1-tests b/selftest/knownfail.d/smb1-tests
index 4790ef0f46c..28a74863c6a 100644
--- a/selftest/knownfail.d/smb1-tests
+++ b/selftest/knownfail.d/smb1-tests
@@ -1,9 +1,7 @@
-^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient anonymous.badpassword.NT1NEW.guest\(maptoguest\)
-^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient baduser.badpassword.NT1NEW.guest\(maptoguest\)
-^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient username.password.NT1OLD\((ad_member|fl2000dc|maptoguest|nt4_member)\)
-^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient username.password.NT1NEW\((ad_member|fl2000dc|maptoguest|nt4_member)\)
-^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient anonymous.nopassword.NT1OLD\((ad_member|fl2000dc|maptoguest|nt4_member)\)
-^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient anonymous.nopassword.NT1NEW\((ad_member|fl2000dc|maptoguest|nt4_member)\)
+^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient username.password.NT1OLD\((ad_member|fl2000dc|nt4_member)\)
+^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient username.password.NT1NEW\((ad_member|fl2000dc|nt4_member)\)
+^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient anonymous.nopassword.NT1OLD\((ad_member|fl2000dc|nt4_member)\)
+^samba3.blackbox.smbclient_ntlm.plain.*NT1.smbclient anonymous.nopassword.NT1NEW\((ad_member|fl2000dc|nt4_member)\)
 ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.smbclient -L.*\((ad_member|nt4_member)\)
 ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.smbclient -L LOCALADMEMBER -I.*\((ad_member|nt4_member)\)
 ^samba3.blackbox.smbclient_s3.NT1.(plain|sign).member_creds.noninteractive smbclient does not prompt\((ad_member|nt4_member)\)
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 7385b755273..83941a85e15 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -2096,6 +2096,7 @@ sub setup_maptoguest
 	my $options = "
 map to guest = bad user
 ntlm auth = yes
+server min protocol = LANMAN1
 
 [force_user_error_inject]
 	path = $share_dir
diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
index 3ac915e775d..b92477c88fe 100644
--- a/source3/libsmb/libsmb_server.c
+++ b/source3/libsmb/libsmb_server.c
@@ -498,7 +498,7 @@ SMBC_server_internal(TALLOC_CTX *ctx,
 
 	status = NT_STATUS_UNSUCCESSFUL;
 
-	if (context->internal->smb_encryption_level != SMBC_ENCRYPTLEVEL_NONE) {
+	if (context->internal->smb_encryption_level > SMBC_ENCRYPTLEVEL_NONE) {
 		signing_state = SMB_SIGNING_REQUIRED;
 	}
 
diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py
index ca6a0ae9a03..e496499da23 100755
--- a/source4/selftest/tests.py
+++ b/source4/selftest/tests.py
@@ -415,6 +415,22 @@ for t in libsmbclient:
             [ "--option=torture:clientprotocol=%s" % proto],
             "samba4.%s.%s" % (t, proto))
 
+url = "smb://baduser:invalidpw@$SERVER/tmpguest"
+t = "libsmbclient.noanon_list"
+libsmbclient_testargs = [
+    '//$SERVER/tmpguest',
+    '-U$USERNAME%$PASSWORD',
+    "--option=torture:smburl=" + url,
+    "--option=torture:replace_smbconf="
+    "%s/testdata/samba3/smb_new.conf" % srcdir()
+    ]
+for proto in protocols:
+    plansmbtorture4testsuite(t,
+        "maptoguest",
+        libsmbclient_testargs +
+        [ "--option=torture:clientprotocol=%s" % proto],
+        "samba4.%s.baduser.%s" % (t, proto))
+
 plansmbtorture4testsuite("raw.qfileinfo.ipc", "ad_dc_ntvfs", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD')
 
 for t in smbtorture4_testsuites("rap."):
diff --git a/source4/torture/libsmbclient/libsmbclient.c b/source4/torture/libsmbclient/libsmbclient.c
index 669189d7785..fd770e5002f 100644
--- a/source4/torture/libsmbclient/libsmbclient.c
+++ b/source4/torture/libsmbclient/libsmbclient.c
@@ -1255,6 +1255,54 @@ static bool torture_libsmbclient_utimes(struct torture_context *tctx)
 	return true;
 }
 
+static bool torture_libsmbclient_noanon_list(struct torture_context *tctx)
+{
+	const char *smburl = torture_setting_string(tctx, "smburl", NULL);
+	struct smbc_dirent *dirent = NULL;
+	SMBCCTX *ctx = NULL;
+	int dhandle = -1;
+	bool ok = true;
+
+	if (smburl == NULL) {
+		torture_fail(tctx,
+			     "option --option=torture:smburl="
+			     "smb://user:password@server missing\n");
+	}
+
+	ok = torture_libsmbclient_init_context(tctx, &ctx);
+	torture_assert_goto(tctx,
+			    ok,
+			    ok,
+			    out,
+			    "Failed to init context");
+	torture_comment(tctx,
+			"Testing smbc_setOptionNoAutoAnonymousLogin\n");
+	smbc_setOptionNoAutoAnonymousLogin(ctx, true);
+	smbc_set_context(ctx);
+
+	torture_comment(tctx, "Listing: %s\n", smburl);
+	dhandle = smbc_opendir(smburl);
+	torture_assert_int_not_equal_goto(tctx,
+					  dhandle,
+					  -1,
+					  ok,
+					  out,
+					  "Failed to open smburl");
+
+	while((dirent = smbc_readdir(dhandle)) != NULL) {
+		torture_comment(tctx, "DIR: %s\n", dirent->name);
+		torture_assert_not_null_goto(tctx,
+					     dirent->name,
+					     ok,
+					     out,
+					     "Failed to read name");
+	}
+
+out:
+	smbc_closedir(dhandle);
+	return ok;
+}
+
 NTSTATUS torture_libsmbclient_init(TALLOC_CTX *ctx)
 {
 	struct torture_suite *suite;
@@ -1276,6 +1324,8 @@ NTSTATUS torture_libsmbclient_init(TALLOC_CTX *ctx)
 		torture_libsmbclient_readdirplus2);
 	torture_suite_add_simple_test(
 		suite, "utimes", torture_libsmbclient_utimes);
+	torture_suite_add_simple_test(
+		suite, "noanon_list", torture_libsmbclient_noanon_list);
 
 	suite->description = talloc_strdup(suite, "libsmbclient interface tests");
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list