The Samba-Bugzilla – Attachment 17280 Details for
Bug 15042
Use pathref fd instead of io fd in vfs_default_durable_cookie
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix for 4.16.next, 4.15.next.
bug-15042-4.16.x (text/plain), 5.47 KB, created by
Jeremy Allison
on 2022-04-29 17:36:24 UTC
(
hide
)
Description:
git-am fix for 4.16.next, 4.15.next.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2022-04-29 17:36:24 UTC
Size:
5.47 KB
patch
obsolete
>From a00840ca3538d884c567d628c0fd677b0d75e064 Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Wed, 27 Apr 2022 12:50:59 -0700 >Subject: [PATCH 1/2] s4: torture: Add a new test - > samba3.smb2.durable-open.stat-open. > >Passes against Windows. Shows that Windows allows a durable handle >on a leased open for READ_ATTRUBUTES only (a stat open). > >Mark as knownfail for now. > >NB. Not sure why we are testing smb2.durable-open against ad_dc >as that provisioning has "smb2 leases = no" which precludes >granting durable handles. Not changing for this bug but this >should be looked at in future. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15042 > >Signed-off-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Ralph Boehme <slow@samba.org> >(cherry picked from commit bb329d4de505d2c01ba45a06311c9dc6d87f8dec) >--- > selftest/knownfail | 1 + > selftest/knownfail.d/durable-stat-open | 1 + > source4/torture/smb2/durable_open.c | 63 ++++++++++++++++++++++++++ > 3 files changed, 65 insertions(+) > create mode 100644 selftest/knownfail.d/durable-stat-open > >diff --git a/selftest/knownfail b/selftest/knownfail >index 7e897dd026d..4c5d03147d2 100644 >--- a/selftest/knownfail >+++ b/selftest/knownfail >@@ -194,6 +194,7 @@ > ^samba3.smb2.durable-open.delete_on_close2 > ^samba3.smb2.durable-v2-open.app-instance > ^samba3.smb2.durable-open.reopen1a-lease\(ad_dc\)$ >+^samba3.smb2.durable-open.stat-open\(ad_dc\)$ > ^samba3.smb2.durable-v2-open.reopen1a-lease\(ad_dc\)$ > ^samba4.smb2.ioctl.req_resume_key\(ad_dc_ntvfs\) # not supported by s4 ntvfs server > ^samba4.smb2.ioctl.req_two_resume_keys\(ad_dc_ntvfs\) # not supported by s4 ntvfs server >diff --git a/selftest/knownfail.d/durable-stat-open b/selftest/knownfail.d/durable-stat-open >new file mode 100644 >index 00000000000..38eab23e6b8 >--- /dev/null >+++ b/selftest/knownfail.d/durable-stat-open >@@ -0,0 +1 @@ >+^samba3.smb2.durable-open.stat-open\(nt4_dc\) >diff --git a/source4/torture/smb2/durable_open.c b/source4/torture/smb2/durable_open.c >index 3d78a35d92c..9cd4d88af39 100644 >--- a/source4/torture/smb2/durable_open.c >+++ b/source4/torture/smb2/durable_open.c >@@ -2751,6 +2751,67 @@ done: > return ret; > } > >+/** >+ * durable stat open with lease. >+ */ >+static bool test_durable_open_stat_open(struct torture_context *tctx, >+ struct smb2_tree *tree) >+{ >+ TALLOC_CTX *mem_ctx = talloc_new(tctx); >+ struct smb2_create io; >+ struct smb2_handle _h; >+ struct smb2_handle *h = NULL; >+ struct smb2_lease ls; >+ NTSTATUS status; >+ char fname[256]; >+ bool ret = true; >+ uint64_t lease; >+ >+ snprintf(fname, 256, "durable_open_stat_open_%s.dat", >+ generate_random_str(mem_ctx, 8)); >+ >+ /* Ensure file doesn't exist. */ >+ smb2_util_unlink(tree, fname); >+ >+ /* Create a normal file. */ >+ smb2_oplock_create(&io, fname, SMB2_OPLOCK_LEVEL_NONE); >+ status = smb2_create(tree, mem_ctx, &io); >+ CHECK_STATUS(status, NT_STATUS_OK); >+ _h = io.out.file.handle; >+ h = &_h; >+ CHECK_CREATED(&io, CREATED, FILE_ATTRIBUTE_ARCHIVE); >+ /* Close. */ >+ smb2_util_close(tree, *h); >+ h = NULL; >+ >+ /* Now try a leased, durable handle stat open. */ >+ lease = random(); >+ /* Create with lease */ >+ smb2_lease_create(&io, >+ &ls, >+ false /* dir */, >+ fname, >+ lease, >+ smb2_util_lease_state("RH")); >+ io.in.durable_open = true; >+ io.in.desired_access = SEC_FILE_READ_ATTRIBUTE; >+ io.in.create_disposition = NTCREATEX_DISP_OPEN; >+ >+ status = smb2_create(tree, mem_ctx, &io); >+ CHECK_STATUS(status, NT_STATUS_OK); >+ CHECK_CREATED(&io, EXISTED, FILE_ATTRIBUTE_ARCHIVE); >+ CHECK_VAL(io.out.durable_open, true); >+ _h = io.out.file.handle; >+ h = &_h; >+ >+done: >+ if (h != NULL) { >+ smb2_util_close(tree, *h); >+ } >+ smb2_util_unlink(tree, fname); >+ talloc_free(mem_ctx); >+ return ret; >+} > > struct torture_suite *torture_smb2_durable_open_init(TALLOC_CTX *ctx) > { >@@ -2786,6 +2847,8 @@ struct torture_suite *torture_smb2_durable_open_init(TALLOC_CTX *ctx) > test_durable_open_alloc_size); > torture_suite_add_1smb2_test(suite, "read-only", > test_durable_open_read_only); >+ torture_suite_add_1smb2_test(suite, "stat-open", >+ test_durable_open_stat_open); > > suite->description = talloc_strdup(suite, "SMB2-DURABLE-OPEN tests"); > >-- >2.32.0 > > >From c2d73c592683eec4feef1ecc8f826d79fa1ff71e Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Wed, 27 Apr 2022 14:08:13 -0700 >Subject: [PATCH 2/2] s3: smbd: Allow a durable handle on a leased stat-open. > >Remove knownfail. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15042 > >Signed-off-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Ralph Boehme <slow@samba.org> > >(back-ported from commit fe7daae8c4692b99ff08d4e3e48034d59ddee245) >--- > selftest/knownfail.d/durable-stat-open | 1 - > source3/smbd/durable.c | 4 ---- > 2 files changed, 5 deletions(-) > delete mode 100644 selftest/knownfail.d/durable-stat-open > >diff --git a/selftest/knownfail.d/durable-stat-open b/selftest/knownfail.d/durable-stat-open >deleted file mode 100644 >index 38eab23e6b8..00000000000 >--- a/selftest/knownfail.d/durable-stat-open >+++ /dev/null >@@ -1 +0,0 @@ >-^samba3.smb2.durable-open.stat-open\(nt4_dc\) >diff --git a/source3/smbd/durable.c b/source3/smbd/durable.c >index a49bca6fd61..75c63c10ea2 100644 >--- a/source3/smbd/durable.c >+++ b/source3/smbd/durable.c >@@ -75,10 +75,6 @@ NTSTATUS vfs_default_durable_cookie(struct files_struct *fsp, > return NT_STATUS_NOT_SUPPORTED; > } > >- if (fsp_get_io_fd(fsp) == -1) { >- return NT_STATUS_NOT_SUPPORTED; >- } >- > if (is_ntfs_stream_smb_fname(fsp->fsp_name)) { > /* > * We do not support durable handles >-- >2.32.0 >
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+
npower
:
review+
Actions:
View
Attachments on
bug 15042
: 17280