The Samba-Bugzilla – Attachment 9519 Details for
Bug 10297
REGRESSION: Writing to a directory with -wx permissions on a share fails with ACCESS_DENIED
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix for 4.1.next and 4.0.next
10297-master.patchset (text/plain), 8.38 KB, created by
Jeremy Allison
on 2013-12-09 21:18:16 UTC
(
hide
)
Description:
git-am fix for 4.1.next and 4.0.next
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2013-12-09 21:18:16 UTC
Size:
8.38 KB
patch
obsolete
>From 22b7400498af7cecbdf608adb7f622b803b50471 Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Tue, 3 Dec 2013 13:20:17 +0100 >Subject: [PATCH 1/3] smbd: Fix regression for the dropbox case. > >We need to allow to save a file to a directory with perm -wx. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=10297 > >Signed-off-by: Volker Lendecke <vl@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 5b49fe24c906cbae12beff7a1b45de6809258cab) >--- > source3/smbd/filename.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > >diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c >index fc96550..16d0df1 100644 >--- a/source3/smbd/filename.c >+++ b/source3/smbd/filename.c >@@ -722,7 +722,10 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx, > */ > > if (errno == EACCES) { >- if (ucf_flags & UCF_CREATING_FILE) { >+ if ((ucf_flags & UCF_CREATING_FILE) == 0) { >+ status = NT_STATUS_ACCESS_DENIED; >+ goto fail; >+ } else { > /* > * This is the dropbox > * behaviour. A dropbox is a >@@ -734,11 +737,8 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx, > * nevertheless want to allow > * users creating a file. > */ >- status = NT_STATUS_OBJECT_PATH_NOT_FOUND; >- } else { >- status = NT_STATUS_ACCESS_DENIED; >+ errno = 0; > } >- goto fail; > } > > if ((errno != 0) && (errno != ENOENT)) { >-- >1.8.5.1 > > >From e02e1bca121fa8dec84afa01132d450b6b2355b6 Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Tue, 3 Dec 2013 10:19:09 -0800 >Subject: [PATCH 2/3] smbd: change flag name from UCF_CREATING_FILE to > UCF_PREP_CREATEFILE > >In preparation to using it for all open calls. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=10297 > >Signed-off-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Volker Lendecke <vl@samba.org> >(cherry picked from commit 874318a97868e08837a1febb1be8e8a167b5ae0f) >--- > source3/smbd/filename.c | 2 +- > source3/smbd/nttrans.c | 4 ++-- > source3/smbd/reply.c | 10 +++++----- > source3/smbd/smb2_create.c | 2 +- > source3/smbd/smbd.h | 2 +- > 5 files changed, 10 insertions(+), 10 deletions(-) > >diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c >index 16d0df1..ba41986 100644 >--- a/source3/smbd/filename.c >+++ b/source3/smbd/filename.c >@@ -722,7 +722,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx, > */ > > if (errno == EACCES) { >- if ((ucf_flags & UCF_CREATING_FILE) == 0) { >+ if ((ucf_flags & UCF_PREP_CREATEFILE) == 0) { > status = NT_STATUS_ACCESS_DENIED; > goto fail; > } else { >diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c >index b7dfa8c..15fa4b6 100644 >--- a/source3/smbd/nttrans.c >+++ b/source3/smbd/nttrans.c >@@ -539,7 +539,7 @@ void reply_ntcreate_and_X(struct smb_request *req) > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, > (create_disposition == FILE_CREATE) >- ? UCF_CREATING_FILE : 0, >+ ? UCF_PREP_CREATEFILE : 0, > NULL, > &smb_fname); > >@@ -1119,7 +1119,7 @@ static void call_nt_transact_create(connection_struct *conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, > (create_disposition == FILE_CREATE) >- ? UCF_CREATING_FILE : 0, >+ ? UCF_PREP_CREATEFILE : 0, > NULL, > &smb_fname); > >diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c >index 2d729ec..2c9749e 100644 >--- a/source3/smbd/reply.c >+++ b/source3/smbd/reply.c >@@ -1918,7 +1918,7 @@ void reply_open(struct smb_request *req) > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, > (create_disposition == FILE_CREATE) >- ? UCF_CREATING_FILE : 0, >+ ? UCF_PREP_CREATEFILE : 0, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2096,7 +2096,7 @@ void reply_open_and_X(struct smb_request *req) > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, > (create_disposition == FILE_CREATE) >- ? UCF_CREATING_FILE : 0, >+ ? UCF_PREP_CREATEFILE : 0, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2329,7 +2329,7 @@ void reply_mknew(struct smb_request *req) > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- UCF_CREATING_FILE, >+ UCF_PREP_CREATEFILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2470,7 +2470,7 @@ void reply_ctemp(struct smb_request *req) > status = filename_convert(ctx, conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- UCF_CREATING_FILE, >+ UCF_PREP_CREATEFILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -5829,7 +5829,7 @@ void reply_mkdir(struct smb_request *req) > status = filename_convert(ctx, conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > directory, >- UCF_CREATING_FILE, >+ UCF_PREP_CREATEFILE, > NULL, > &smb_dname); > if (!NT_STATUS_IS_OK(status)) { >diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c >index c4d4991..f637dac 100644 >--- a/source3/smbd/smb2_create.c >+++ b/source3/smbd/smb2_create.c >@@ -872,7 +872,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx, > smb1req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, > (in_create_disposition == FILE_CREATE) ? >- UCF_CREATING_FILE : 0, >+ UCF_PREP_CREATEFILE : 0, > NULL, /* ppath_contains_wcards */ > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >diff --git a/source3/smbd/smbd.h b/source3/smbd/smbd.h >index e769157..5cf88bf 100644 >--- a/source3/smbd/smbd.h >+++ b/source3/smbd/smbd.h >@@ -73,6 +73,6 @@ struct trans_state { > #define UCF_COND_ALLOW_WCARD_LCOMP 0x00000004 > #define UCF_POSIX_PATHNAMES 0x00000008 > #define UCF_UNIX_NAME_LOOKUP 0x00000010 >-#define UCF_CREATING_FILE 0x00000020 >+#define UCF_PREP_CREATEFILE 0x00000020 > > #endif /* _SMBD_SMBD_H */ >-- >1.8.5.1 > > >From e7abcfae4fbbf4d6fe56e5a1a4d76ffe4e9677d9 Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Tue, 3 Dec 2013 10:21:16 -0800 >Subject: [PATCH 3/3] smbd: Always use UCF_PREP_CREATEFILE for filename_convert > calls to resolve a path for open. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=10297 > >Signed-off-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Volker Lendecke <vl@samba.org> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Mon Dec 9 21:02:21 CET 2013 on sn-devel-104 > >(cherry picked from commit f98d10af2a05f0261611f4cabdfe274cd9fe91c0) >--- > source3/smbd/nttrans.c | 6 ++---- > source3/smbd/reply.c | 6 ++---- > source3/smbd/smb2_create.c | 3 +-- > 3 files changed, 5 insertions(+), 10 deletions(-) > >diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c >index 15fa4b6..0d3cd07 100644 >--- a/source3/smbd/nttrans.c >+++ b/source3/smbd/nttrans.c >@@ -538,8 +538,7 @@ void reply_ntcreate_and_X(struct smb_request *req) > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- (create_disposition == FILE_CREATE) >- ? UCF_PREP_CREATEFILE : 0, >+ UCF_PREP_CREATEFILE, > NULL, > &smb_fname); > >@@ -1118,8 +1117,7 @@ static void call_nt_transact_create(connection_struct *conn, > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- (create_disposition == FILE_CREATE) >- ? UCF_PREP_CREATEFILE : 0, >+ UCF_PREP_CREATEFILE, > NULL, > &smb_fname); > >diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c >index 2c9749e..f293b69 100644 >--- a/source3/smbd/reply.c >+++ b/source3/smbd/reply.c >@@ -1917,8 +1917,7 @@ void reply_open(struct smb_request *req) > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- (create_disposition == FILE_CREATE) >- ? UCF_PREP_CREATEFILE : 0, >+ UCF_PREP_CREATEFILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2095,8 +2094,7 @@ void reply_open_and_X(struct smb_request *req) > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- (create_disposition == FILE_CREATE) >- ? UCF_PREP_CREATEFILE : 0, >+ UCF_PREP_CREATEFILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c >index f637dac..6730ad6 100644 >--- a/source3/smbd/smb2_create.c >+++ b/source3/smbd/smb2_create.c >@@ -871,8 +871,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx, > smb1req->conn, > smb1req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- (in_create_disposition == FILE_CREATE) ? >- UCF_PREP_CREATEFILE : 0, >+ UCF_PREP_CREATEFILE, > NULL, /* ppath_contains_wcards */ > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >-- >1.8.5.1 >
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:
asn
:
review+
Actions:
View
Attachments on
bug 10297
:
9491
|
9515
| 9519 |
12597
|
12599