diff options
author | Michael Adam <obnox@samba.org> | 2008-08-12 14:59:59 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-08-12 21:37:30 +0200 |
commit | ec5956ab0df1b3f567470b2481b73da9c3c67371 (patch) | |
tree | 0bdf0e593716c1d26858ef341dd4cab31e4d2deb | |
parent | 834684a524a24bb4eb46b4af583d39947dc87d95 (diff) | |
download | samba-ec5956ab0df1b3f567470b2481b73da9c3c67371.tar.gz samba-ec5956ab0df1b3f567470b2481b73da9c3c67371.tar.xz samba-ec5956ab0df1b3f567470b2481b73da9c3c67371.zip |
Fix unix_convert() for "*" after changing map_nt_error_from_unix().
map_nt_error_from_unix() now assumes that it is called in
an error path and returns an error even for a given errno == 0.
The original behaviour of unix_convert() used the mapping
of errno == 0 ==> NT_STATUS_OK to return success through
an error path.
I think this must have been an oversight, and unix_convert() worked
only by coincidence (or because explicitly using the knowledge
of the conceptually wrong working of map_nt_error_from_unix().
This patch puts this straight by not interpreting errno == 0
as an error condition and proceeding in that case.
Jeremy - please check!
Michael
-rw-r--r-- | source/smbd/filename.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/smbd/filename.c b/source/smbd/filename.c index 4323e843d21..41a0b9296a5 100644 --- a/source/smbd/filename.c +++ b/source/smbd/filename.c @@ -477,7 +477,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx, } /* ENOENT is the only valid error here. */ - if (errno != ENOENT) { + if ((errno != 0) && (errno != ENOENT)) { /* * ENOTDIR and ELOOP both map to * NT_STATUS_OBJECT_PATH_NOT_FOUND |