The Samba-Bugzilla – Attachment 17868 Details for
Bug 15358
shadow_copy2 and streams_depot don't play well together
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for 4.18
bug-15358-4.18.txt (text/plain), 5.08 KB, created by
Volker Lendecke
on 2023-04-18 07:45:44 UTC
(
hide
)
Description:
Patch for 4.18
Filename:
MIME Type:
Creator:
Volker Lendecke
Created:
2023-04-18 07:45:44 UTC
Size:
5.08 KB
patch
obsolete
>From 250de98c89fc9b0bba51368ffbd1fc09cf2f50e6 Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Fri, 14 Apr 2023 15:34:17 +0000 >Subject: [PATCH 1/2] tests: Show that streams_depot and shadow_copy2 don't > play together > >See the next patch, we assert in shadow_copy2_openat() over paths >passed in from shadow_copy2 > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15358 > >Signed-off-by: Volker Lendecke <vl@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> >(cherry picked from commit 0327334c89cfda9020c6044a7b2b182138e46d03) >--- > python/samba/tests/libsmb-basic.py | 15 ++++++++++++++- > selftest/knownfail.d/shadow_depot | 1 + > selftest/target/Samba3.pm | 5 +++++ > 3 files changed, 20 insertions(+), 1 deletion(-) > create mode 100644 selftest/knownfail.d/shadow_depot > >diff --git a/python/samba/tests/libsmb-basic.py b/python/samba/tests/libsmb-basic.py >index 37b82b26dac..cbe7cce5bae 100644 >--- a/python/samba/tests/libsmb-basic.py >+++ b/python/samba/tests/libsmb-basic.py >@@ -19,7 +19,7 @@ > > from samba.samba3 import libsmb_samba_internal as libsmb > from samba.dcerpc import security >-from samba import NTSTATUSError >+from samba import NTSTATUSError,ntstatus > from samba.ntstatus import NT_STATUS_DELETE_PENDING > from samba.credentials import SMB_ENCRYPTION_REQUIRED > import samba.tests.libsmb >@@ -202,6 +202,19 @@ class LibsmbTestCase(samba.tests.libsmb.LibsmbTests): > c.rmdir("subdir") > self.assertTrue(ret) > >+ def test_libsmb_shadow_depot(self): >+ c = libsmb.Conn(self.server_ip, "shadow_depot", self.lp, self.creds) >+ try: >+ fnum=c.create("x:y",CreateDisposition=libsmb.FILE_CREATE) >+ c.close(fnum) >+ except: >+ self.fail() >+ finally: >+ # "c" might have crashed, get a new connection >+ c1 = libsmb.Conn(self.server_ip, "shadow_depot", self.lp, self.creds) >+ c1.unlink("x") >+ c1 = None >+ > if __name__ == "__main__": > import unittest > unittest.main() >diff --git a/selftest/knownfail.d/shadow_depot b/selftest/knownfail.d/shadow_depot >new file mode 100644 >index 00000000000..0dbf553a9ef >--- /dev/null >+++ b/selftest/knownfail.d/shadow_depot >@@ -0,0 +1 @@ >+^samba.tests.libsmb-basic.samba.tests.libsmb-basic.LibsmbTestCase.test_libsmb_shadow_depot\(fileserver_smb1\) >diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm >index c8fe925a948..e0e3c026fa6 100755 >--- a/selftest/target/Samba3.pm >+++ b/selftest/target/Samba3.pm >@@ -3405,6 +3405,11 @@ sub provision($$) > shadow:fixinodes = yes > smbd async dosmode = yes > >+[shadow_depot] >+ path = $shadow_shrdir >+ comment = previous versions with streams_depot >+ vfs objects = streams_depot shadow_copy2 >+ > [dfq] > path = $shrdir/dfree > vfs objects = acl_xattr fake_acls xattr_tdb fake_dfq >-- >2.30.2 > > >From bca97f3e0db808c3aa92e6367a98637817bfb041 Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Fri, 14 Apr 2023 17:22:18 +0200 >Subject: [PATCH 2/2] shadow_copy2: Fix stream open for streams_depot paths > >streams_depot hands us absolute paths with : filename components >instead of having set smb_fname_in->stream_name. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15358 > >Signed-off-by: Volker Lendecke <vl@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Mon Apr 17 18:11:07 UTC 2023 on atb-devel-224 > >(cherry picked from commit 526f381f413d1cb5cde93b9542034f5ebfcfcc10) >--- > selftest/knownfail.d/shadow_depot | 1 - > source3/modules/vfs_shadow_copy2.c | 25 ++++++++++++++++--------- > 2 files changed, 16 insertions(+), 10 deletions(-) > delete mode 100644 selftest/knownfail.d/shadow_depot > >diff --git a/selftest/knownfail.d/shadow_depot b/selftest/knownfail.d/shadow_depot >deleted file mode 100644 >index 0dbf553a9ef..00000000000 >--- a/selftest/knownfail.d/shadow_depot >+++ /dev/null >@@ -1 +0,0 @@ >-^samba.tests.libsmb-basic.samba.tests.libsmb-basic.LibsmbTestCase.test_libsmb_shadow_depot\(fileserver_smb1\) >diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c >index 16e39c2f070..a2c9d3ce4c9 100644 >--- a/source3/modules/vfs_shadow_copy2.c >+++ b/source3/modules/vfs_shadow_copy2.c >@@ -1522,15 +1522,22 @@ static struct smb_filename *shadow_copy2_openat_name( > if (fsp->base_fsp != NULL) { > struct smb_filename *base_fname = fsp->base_fsp->fsp_name; > >- SMB_ASSERT(is_named_stream(smb_fname_in)); >- >- result = synthetic_smb_fname( >- mem_ctx, >- base_fname->base_name, >- smb_fname_in->stream_name, >- &smb_fname_in->st, >- smb_fname_in->twrp, >- smb_fname_in->flags); >+ if (smb_fname_in->base_name[0] == '/') { >+ /* >+ * Special-case stream names from streams_depot >+ */ >+ result = cp_smb_filename(mem_ctx, smb_fname_in); >+ } else { >+ >+ SMB_ASSERT(is_named_stream(smb_fname_in)); >+ >+ result = synthetic_smb_fname(mem_ctx, >+ base_fname->base_name, >+ smb_fname_in->stream_name, >+ &smb_fname_in->st, >+ smb_fname_in->twrp, >+ smb_fname_in->flags); >+ } > } else { > result = full_path_from_dirfsp_atname( > mem_ctx, dirfsp, smb_fname_in); >-- >2.30.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
slow
:
review+
Actions:
View
Attachments on
bug 15358
: 17868 |
17869