summaryrefslogtreecommitdiffstats
path: root/source3/smbd/filename.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-06-01 10:39:30 +1000
committerAndrew Tridgell <tridge@samba.org>2009-06-01 10:39:30 +1000
commitba95882155db4f8c10725f47f70ae482d5343f9a (patch)
tree52c65ddfbcd81f3dcbb3b91183ae043b9c51acd5 /source3/smbd/filename.c
parent67b83d2489788f1899c253fdab554d0998f9c044 (diff)
parent14c13620345dfd9f1e18761f103aa66138bf8907 (diff)
downloadsamba-ba95882155db4f8c10725f47f70ae482d5343f9a.tar.gz
samba-ba95882155db4f8c10725f47f70ae482d5343f9a.tar.xz
samba-ba95882155db4f8c10725f47f70ae482d5343f9a.zip
Merge branch 'master' of ssh://git.samba.org/data/git/samba
Diffstat (limited to 'source3/smbd/filename.c')
-rw-r--r--source3/smbd/filename.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
index 72b4ab7aa6..059dca29c8 100644
--- a/source3/smbd/filename.c
+++ b/source3/smbd/filename.c
@@ -513,8 +513,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
@@ -524,8 +530,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);
}