From 50b3dacb525d026dd7d280948d8a63075756d029 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Sat, 13 Jan 2007 02:13:45 +0000 Subject: r20722: RAW-CHKPATH should now pass, build farm should go back to normal. Sorry about that. Jeremy. (This used to be commit d4127034fb89185fe7464d57c9f56f7914da6141) --- source3/smbd/filename.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'source3') diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index dd1e0de20f..a36b7ff282 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -391,15 +391,24 @@ NTSTATUS unix_convert(connection_struct *conn, * Windows applications depend on the difference between * these two errors. */ - if (errno == ENOENT) { + + /* ENOENT and ENOTDIR both map to NT_STATUS_OBJECT_PATH_NOT_FOUND + in the filename walk. */ + + if (errno == ENOENT || errno == ENOTDIR) { return NT_STATUS_OBJECT_PATH_NOT_FOUND; } return map_nt_error_from_unix(errno); } - if (errno == ENOTDIR) { - /* Name exists but is not a directory. */ - return map_nt_error_from_unix(ENOTDIR); + /* ENOENT is the only valid error here. */ + if (errno != ENOENT) { + /* ENOENT and ENOTDIR both map to NT_STATUS_OBJECT_PATH_NOT_FOUND + in the filename walk. */ + if (errno == ENOTDIR) { + return NT_STATUS_OBJECT_PATH_NOT_FOUND; + } + return map_nt_error_from_unix(errno); } /* -- cgit