Clifford Wolf : Fix for a configuration such as: case sensitive = yes preserve case = no short preserve case = no mangle case = yes Index: source/smbd/filename.c =================================================================== RCS file: /cvsroot/samba/source/smbd/filename.c,v retrieving revision 1.61 diff -u -r1.61 filename.c --- source/smbd/filename.c 9 Sep 2003 04:07:26 -0000 1.61 +++ source/smbd/filename.c 14 Jan 2004 14:46:16 -0000 @@ -151,7 +151,7 @@ pstrcpy(saved_last_component, name); } - if (!case_sensitive && (!case_preserve || (mangle_is_8_3(name, False) && !short_case_preserve))) + if (!case_preserve || (mangle_is_8_3(name, False) && !short_case_preserve)) strnorm(name); /* @@ -192,8 +192,15 @@ * sensitive then searching won't help. */ - if (case_sensitive && !mangle_is_mangled(name) && !use_mangled_map) + if (case_sensitive && !mangle_is_mangled(name) && !use_mangled_map) { + if ( (start=strrchr(start, '/')) != NULL ) { + *start = 0; + if (SMB_VFS_STAT(conn, name, &st) != 0) + *bad_path = True; + *start = '/'; // is that needed? + } return(False); + } name_has_wildcard = ms_has_wild(start);