The branch, v3-3-test has been updated
       via  f9ea09b61a46136fc55314e2e1cd2e9cfb362802 (commit)
       via  f586b209b0216150f07bcc998c0d57e0d179b8ee (commit)
      from  de156e6ee292ad7fc683d681d7c4b44edba67626 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit f9ea09b61a46136fc55314e2e1cd2e9cfb362802
Author: Jeremy Allison <j...@samba.org>
Date:   Sat May 30 11:30:16 2009 +0200

    Simplify the dropbox patch

commit f586b209b0216150f07bcc998c0d57e0d179b8ee
Author: Volker Lendecke <vl at>
Date:   Wed May 13 15:46:35 2009 +0200

    Re-Add the "dropbox" functionality with -wx rights on a directory

-----------------------------------------------------------------------

Summary of changes:
 source/smbd/filename.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/smbd/filename.c b/source/smbd/filename.c
index d404b90..5ea5cb2 100644
--- a/source/smbd/filename.c
+++ b/source/smbd/filename.c
@@ -497,8 +497,14 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
                                        goto fail;
                                }
 
-                               /* ENOENT is the only valid error here. */
-                               if ((errno != 0) && (errno != ENOENT)) {
+                               /*
+                                * ENOENT/EACCESS are the only valid errors
+                                * here. EACCESS needs handling here for
+                                * "dropboxes", i.e. directories where users
+                                * can only put stuff with permission -wx.
+                                */
+                               if ((errno != 0) && (errno != ENOENT)
+                                   && (errno != EACCES)) {
                                        /*
                                         * ENOTDIR and ELOOP both map to
                                         * NT_STATUS_OBJECT_PATH_NOT_FOUND
@@ -508,8 +514,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
                                                        errno == ELOOP) {
                                                result =
                                                NT_STATUS_OBJECT_PATH_NOT_FOUND;
-                                       }
-                                       else {
+                                       } else {
                                                result =
                                                map_nt_error_from_unix(errno);
                                        }


-- 
Samba Shared Repository

Reply via email to