From b114d3dc70a631f41c9d6e0e05b0ed98baa9d815 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 11 Jul 2007 23:54:01 +0000 Subject: r23846: Belt-and-braces on the msdfs bug. Ensure ELOOP maps correctly. Jeremy. (This used to be commit f2cf4b6b9d1ce561fdf9f6815564d5b4f033dd10) --- source3/smbd/filename.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'source3/smbd/filename.c') 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 { -- cgit