The Samba-Bugzilla – Attachment 9515 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 master.
look32 (text/plain), 7.90 KB, created by
Jeremy Allison
on 2013-12-07 00:07:04 UTC
(
hide
)
Description:
git-am fix for master.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2013-12-07 00:07:04 UTC
Size:
7.90 KB
patch
obsolete
>From 8d401132c07e6531f4dda1f5f756700492895f74 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> >--- > 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 68321ee..3096a3e 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.4.1 > > >From 5a9b96735df0cd18a3e93f569a404cc803a23149 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_OPENING_FILE > >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> >--- > 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 3096a3e..d0d36d0 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_OPENING_FILE) == 0) { > status = NT_STATUS_ACCESS_DENIED; > goto fail; > } else { >diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c >index e901ff2..c6dd541 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_OPENING_FILE : 0, > NULL, > &smb_fname); > >@@ -1068,7 +1068,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_OPENING_FILE : 0, > NULL, > &smb_fname); > >diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c >index ce1a127..6f7eb40 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_OPENING_FILE : 0, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2087,7 +2087,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_OPENING_FILE : 0, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2320,7 +2320,7 @@ void reply_mknew(struct smb_request *req) > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- UCF_CREATING_FILE, >+ UCF_OPENING_FILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2461,7 +2461,7 @@ void reply_ctemp(struct smb_request *req) > status = filename_convert(ctx, conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- UCF_CREATING_FILE, >+ UCF_OPENING_FILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -5820,7 +5820,7 @@ void reply_mkdir(struct smb_request *req) > status = filename_convert(ctx, conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > directory, >- UCF_CREATING_FILE, >+ UCF_OPENING_FILE, > NULL, > &smb_dname); > if (!NT_STATUS_IS_OK(status)) { >diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c >index 38eba4f..c4f5c3c 100644 >--- a/source3/smbd/smb2_create.c >+++ b/source3/smbd/smb2_create.c >@@ -892,7 +892,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_OPENING_FILE : 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..d1436e8 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_OPENING_FILE 0x00000020 > > #endif /* _SMBD_SMBD_H */ >-- >1.8.4.1 > > >From 1acb6accc43bfab70c7624442b8963188b800ed0 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_OPENING_FILE 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> >--- > 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 c6dd541..b67c2e2 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_OPENING_FILE : 0, >+ UCF_OPENING_FILE, > NULL, > &smb_fname); > >@@ -1067,8 +1066,7 @@ static void call_nt_transact_create(connection_struct *conn, > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- (create_disposition == FILE_CREATE) >- ? UCF_OPENING_FILE : 0, >+ UCF_OPENING_FILE, > NULL, > &smb_fname); > >diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c >index 6f7eb40..ca4674d 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_OPENING_FILE : 0, >+ UCF_OPENING_FILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >@@ -2086,8 +2085,7 @@ void reply_open_and_X(struct smb_request *req) > conn, > req->flags2 & FLAGS2_DFS_PATHNAMES, > fname, >- (create_disposition == FILE_CREATE) >- ? UCF_OPENING_FILE : 0, >+ UCF_OPENING_FILE, > NULL, > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c >index c4f5c3c..9f0e103 100644 >--- a/source3/smbd/smb2_create.c >+++ b/source3/smbd/smb2_create.c >@@ -891,8 +891,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_OPENING_FILE : 0, >+ UCF_OPENING_FILE, > NULL, /* ppath_contains_wcards */ > &smb_fname); > if (!NT_STATUS_IS_OK(status)) { >-- >1.8.4.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
Actions:
View
Attachments on
bug 10297
:
9491
|
9515
|
9519
|
12597
|
12599