The Samba-Bugzilla – Attachment 11514 Details for
Bug 11452
DOS Client Cannot Delete *.*
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fixed patch for mater (fixes samba3.raw.unlink error).
bug-11452.master (text/plain), 5.62 KB, created by
Jeremy Allison
on 2015-10-20 19:40:16 UTC
(
hide
)
Description:
Fixed patch for mater (fixes samba3.raw.unlink error).
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2015-10-20 19:40:16 UTC
Size:
5.62 KB
patch
obsolete
>From 6f6ee39d2cdf0fcb2b8f0b2fd12e61eec6be65df Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Mon, 19 Oct 2015 16:04:02 -0700 >Subject: [PATCH 1/3] s3: smbd: Fix old DOS client doing wildcard delete - > gives a attribute type of zero. > >In the wildcard delete path we forgot to map 0 -> FILE_ATTRIBUTE_NORMAL >as we do in the non-wildcard delete path. > >BUG:https://bugzilla.samba.org/show_bug.cgi?id=11452 > >Signed-off-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >--- > source3/smbd/reply.c | 3 +++ > 1 file changed, 3 insertions(+) > >diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c >index bebb789..c796c00 100644 >--- a/source3/smbd/reply.c >+++ b/source3/smbd/reply.c >@@ -2915,6 +2915,9 @@ NTSTATUS unlink_internals(connection_struct *conn, struct smb_request *req, > status = NT_STATUS_OBJECT_NAME_INVALID; > goto out; > } >+ if (dirtype == 0) { >+ dirtype = FILE_ATTRIBUTE_NORMAL; >+ } > > if (strequal(fname_mask,"????????.???")) { > TALLOC_FREE(fname_mask); >-- >2.6.0.rc2.230.g3dd15c0 > > >From bd3f8f94efcce63de4648ceab1a2fe77245f85f0 Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Mon, 19 Oct 2015 16:06:01 -0700 >Subject: [PATCH 2/3] s3: torture: Add WILDDELETE test to smbtorture3 to test > old wildcard delete with zero attribute. > >https://bugzilla.samba.org/show_bug.cgi?id=11452 > >Signed-off-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >--- > source3/selftest/tests.py | 2 +- > source3/torture/torture.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 68 insertions(+), 1 deletion(-) > >diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py >index ecbb368..6d740b7 100755 >--- a/source3/selftest/tests.py >+++ b/source3/selftest/tests.py >@@ -48,7 +48,7 @@ tests = ["FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7" > "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE", > "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR", > "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "LARGE_READX", "RW-SIGNING", >- "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "PROPERTIES", "W2K", >+ "OPEN", "XCOPY", "RENAME", "DELETE", "DELETE-LN", "WILDDELETE", "PROPERTIES", "W2K", > "TCON2", "IOCTL", "CHKPATH", "FDSESS", "CHAIN1", "CHAIN2", > "CHAIN3", > "GETADDRINFO", "UID-REGRESSION-TEST", "SHORTNAME-TEST", >diff --git a/source3/torture/torture.c b/source3/torture/torture.c >index 21d2dd2..ef75d21 100644 >--- a/source3/torture/torture.c >+++ b/source3/torture/torture.c >@@ -4409,6 +4409,72 @@ static bool run_deletetest(int dummy) > return correct; > } > >+ >+/* >+ Test wildcard delete. >+ */ >+static bool run_wild_deletetest(int dummy) >+{ >+ struct cli_state *cli = NULL; >+ const char *dname = "\\WTEST"; >+ const char *fname = "\\WTEST\\A"; >+ const char *wunlink_name = "\\WTEST\\*"; >+ uint16_t fnum1 = (uint16_t)-1; >+ bool correct = false; >+ NTSTATUS status; >+ >+ printf("starting wildcard delete test\n"); >+ >+ if (!torture_open_connection(&cli, 0)) { >+ return false; >+ } >+ >+ smbXcli_conn_set_sockopt(cli->conn, sockops); >+ >+ cli_unlink(cli, fname, 0); >+ cli_rmdir(cli, dname); >+ status = cli_mkdir(cli, dname); >+ if (!NT_STATUS_IS_OK(status)) { >+ printf("mkdir of %s failed %s!\n", dname, nt_errstr(status)); >+ goto fail; >+ } >+ status = cli_openx(cli, fname, O_CREAT|O_RDONLY, DENY_NONE, &fnum1); >+ if (!NT_STATUS_IS_OK(status)) { >+ printf("open of %s failed %s!\n", fname, nt_errstr(status)); >+ goto fail; >+ } >+ status = cli_close(cli, fnum1); >+ fnum1 = -1; >+ >+ /* >+ * Note the unlink attribute-type of zero. This should >+ * map into FILE_ATTRIBUTE_NORMAL at the server even >+ * on a wildcard delete. >+ */ >+ >+ status = cli_unlink(cli, wunlink_name, 0); >+ if (!NT_STATUS_IS_OK(status)) { >+ printf("unlink of %s failed %s!\n", >+ wunlink_name, nt_errstr(status)); >+ goto fail; >+ } >+ >+ printf("finished wildcard delete test\n"); >+ >+ correct = true; >+ >+ fail: >+ >+ if (fnum1 != (uint16_t)-1) cli_close(cli, fnum1); >+ cli_unlink(cli, fname, 0); >+ cli_rmdir(cli, dname); >+ >+ if (cli && !torture_close_connection(cli)) { >+ correct = false; >+ } >+ return correct; >+} >+ > static bool run_deletetest_ln(int dummy) > { > struct cli_state *cli; >@@ -9548,6 +9614,7 @@ static struct { > {"XCOPY", run_xcopy, 0}, > {"RENAME", run_rename, 0}, > {"DELETE", run_deletetest, 0}, >+ {"WILDDELETE", run_wild_deletetest, 0}, > {"DELETE-LN", run_deletetest_ln, 0}, > {"PROPERTIES", run_properties, 0}, > {"MANGLE", torture_mangle, 0}, >-- >2.6.0.rc2.230.g3dd15c0 > > >From 4de3af592a9c7f6ffd00be178f82fef04de29717 Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Tue, 20 Oct 2015 12:31:03 -0700 >Subject: [PATCH 3/3] s3: torture: Remove (incorrect) samba3-specific behavior > in samba3.raw.unlink now the server is correct. > >https://bugzilla.samba.org/show_bug.cgi?id=11452 > >Signed-off-by: Jeremy Allison <jra@samba.org> >--- > source4/torture/raw/unlink.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > >diff --git a/source4/torture/raw/unlink.c b/source4/torture/raw/unlink.c >index 25edb5e..4f198fa 100644 >--- a/source4/torture/raw/unlink.c >+++ b/source4/torture/raw/unlink.c >@@ -178,12 +178,7 @@ static bool test_unlink(struct torture_context *tctx, struct smbcli_state *cli) > io.unlink.in.pattern = BASEDIR "\\*.tx?"; > io.unlink.in.attrib = 0; > status = smb_raw_unlink(cli->tree, &io); >- if (torture_setting_bool(tctx, "samba3", false)) { >- CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE); >- } >- else { >- CHECK_STATUS(status, NT_STATUS_OK); >- } >+ CHECK_STATUS(status, NT_STATUS_OK); > > status = smb_raw_unlink(cli->tree, &io); > CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE); >-- >2.6.0.rc2.230.g3dd15c0 >
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
Actions:
View
Attachments on
bug 11452
:
11343
|
11417
|
11418
|
11507
|
11514
|
11519