[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Fri Feb 24 08:47:01 UTC 2023


The branch, master has been updated
       via  bf9130d375b smbd: Fix case normalization in for directories
       via  342d8f6a0a8 tests: Show that the case sensitive large dir optimization is broken
       via  a9301d8f295 tests: Move libsmb-basic to fileserver_smb1 environment
      from  62ea6ae8c9d doc/vfs_ceph: document ceph:filesystem parameter

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


- Log -----------------------------------------------------------------
commit bf9130d375b6c401bb79fc1a0911975814759e3b
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Feb 17 10:02:37 2023 +0100

    smbd: Fix case normalization in for directories
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=15313
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Volker Lendecke <vl at samba.org>
    Autobuild-Date(master): Fri Feb 24 08:46:14 UTC 2023 on atb-devel-224

commit 342d8f6a0a8bc2229332783a840c882f85a1dd4e
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Feb 17 15:41:12 2023 +0100

    tests: Show that the case sensitive large dir optimization is broken
    
    We don't normalize the directories
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=15313
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit a9301d8f2956409a6d36e7776d0237d03bfbdbf6
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Feb 17 15:40:30 2023 +0100

    tests: Move libsmb-basic to fileserver_smb1 environment
    
    This has the lower-case share, used in the next commit
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=15313
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

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

Summary of changes:
 python/samba/tests/libsmb-basic.py | 9 +++++++++
 selftest/target/Samba3.pm          | 1 +
 source3/smbd/filename.c            | 8 ++++++++
 source4/selftest/tests.py          | 2 +-
 4 files changed, 19 insertions(+), 1 deletion(-)


Changeset truncated at 500 lines:

diff --git a/python/samba/tests/libsmb-basic.py b/python/samba/tests/libsmb-basic.py
index 61a25a8c682..37b82b26dac 100644
--- a/python/samba/tests/libsmb-basic.py
+++ b/python/samba/tests/libsmb-basic.py
@@ -193,6 +193,15 @@ class LibsmbTestCase(samba.tests.libsmb.LibsmbTests):
         finally:
             c.deltree(testdir)
 
+    def test_libsmb_TortureDirCaseSensitive(self):
+        c = libsmb.Conn(self.server_ip, "lowercase", self.lp, self.creds)
+        c.mkdir("subdir")
+        c.mkdir("subdir/b")
+        ret = c.chkpath("SubDir/b")
+        c.rmdir("subdir/b")
+        c.rmdir("subdir")
+        self.assertTrue(ret)
+
 if __name__ == "__main__":
     import unittest
     unittest.main()
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index f9346ae812e..476f59c8783 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -2106,6 +2106,7 @@ sub setup_fileserver_smb1
 [global]
 	client min protocol = CORE
 	server min protocol = LANMAN1
+	check parent directory delete on close = yes
 
 [hidenewfiles]
 	path = $prefix_abs/share
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
index 73e88add2c3..e9775387d11 100644
--- a/source3/smbd/filename.c
+++ b/source3/smbd/filename.c
@@ -1123,6 +1123,14 @@ static NTSTATUS filename_convert_dirfsp_nosymlink(
 		char *substitute = NULL;
 		size_t unparsed = 0;
 
+		status = normalize_filename_case(conn, dirname, ucf_flags);
+		if (!NT_STATUS_IS_OK(status)) {
+			DBG_ERR("normalize_filename_case %s failed: %s\n",
+				dirname,
+				nt_errstr(status));
+			goto fail;
+		}
+
 		status = openat_pathref_dirfsp_nosymlink(
 			mem_ctx,
 			conn,
diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py
index 7eff1bb2469..2780d77ad07 100755
--- a/source4/selftest/tests.py
+++ b/source4/selftest/tests.py
@@ -535,7 +535,7 @@ for t in smbtorture4_testsuites("dlz_bind9."):
     # The dlz_bind9 tests needs to look at the DNS database
     plansmbtorture4testsuite(t, "chgdcpass:local", ["ncalrpc:$SERVER", '-U$USERNAME%$PASSWORD'])
 
-planpythontestsuite("nt4_dc_smb1", "samba.tests.libsmb-basic")
+planpythontestsuite("fileserver_smb1", "samba.tests.libsmb-basic")
 
 planpythontestsuite("ad_member", "samba.tests.smb-notify",
                     environ={'USERNAME':'$DC_USERNAME',


-- 
Samba Shared Repository



More information about the samba-cvs mailing list