summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/filename.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
index fd7727c594..cf6613aa71 100644
--- a/source3/smbd/filename.c
+++ b/source3/smbd/filename.c
@@ -396,10 +396,15 @@ NTSTATUS unix_convert(connection_struct *conn,
* these two errors.
*/
- /* ENOENT and ENOTDIR both map to NT_STATUS_OBJECT_PATH_NOT_FOUND
- in the filename walk. */
+ /*
+ * ENOENT, ENOTDIR and ELOOP all map
+ * to NT_STATUS_OBJECT_PATH_NOT_FOUND
+ * in the filename walk.
+ */
- if (errno == ENOENT || errno == ENOTDIR) {
+ if (errno == ENOENT ||
+ errno == ENOTDIR ||
+ errno == ELOOP) {
result = NT_STATUS_OBJECT_PATH_NOT_FOUND;
}
else {
@@ -410,9 +415,13 @@ NTSTATUS unix_convert(connection_struct *conn,
/* 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) {
+ /*
+ * ENOTDIR and ELOOP both map to
+ * NT_STATUS_OBJECT_PATH_NOT_FOUND
+ * in the filename walk.
+ */
+ if (errno == ENOTDIR ||
+ errno == ELOOP) {
result = NT_STATUS_OBJECT_PATH_NOT_FOUND;
}
else {