From: Jeremy Allison Date: Mon, 30 Mar 2009 22:05:39 +0000 (-0700) Subject: Ensure files starting with multiple dots are hidden X-Git-Tag: tdb-1.1.5~1047^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9be2e2fdce9f0823f428afd492c066eb5e097f59;p=thirdparty%2Fsamba.git Ensure files starting with multiple dots are hidden if "hide dot files" is set. Thanks to Barry Kelly for pointing this one out. Jeremy. --- diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c index 555718bd83a..5ae71513033 100644 --- a/source3/smbd/dosmode.c +++ b/source3/smbd/dosmode.c @@ -325,8 +325,10 @@ uint32 dos_mode_msdfs(connection_struct *conn, const char *path,SMB_STRUCT_STAT } else { p = path; } - - if (p[0] == '.' && p[1] != '.' && p[1] != 0) { + + /* Only . and .. are not hidden. */ + if (p[0] == '.' && !((p[1] == '\0') || + (p[1] == '.' && p[2] == '\0'))) { result |= aHIDDEN; } } @@ -484,8 +486,10 @@ uint32 dos_mode(connection_struct *conn, const char *path,SMB_STRUCT_STAT *sbuf) } else { p = path; } - - if (p[0] == '.' && p[1] != '.' && p[1] != 0) { + + /* Only . and .. are not hidden. */ + if (p[0] == '.' && !((p[1] == '\0') || + (p[1] == '.' && p[2] == '\0'))) { result |= aHIDDEN; } }