diff options
author | Jeremy Allison <jra@samba.org> | 2005-11-22 16:21:52 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2005-11-22 16:21:52 +0000 |
commit | 0ade59d7b16bf9a209a9eaa8a20da25321cef020 (patch) | |
tree | b321f42be33021c330e13e8f43815c3baf2bf951 | |
parent | 81f1af28378f4592c548e31c2e088de08294fa0b (diff) | |
download | samba-0ade59d7b16bf9a209a9eaa8a20da25321cef020.tar.gz samba-0ade59d7b16bf9a209a9eaa8a20da25321cef020.tar.xz samba-0ade59d7b16bf9a209a9eaa8a20da25321cef020.zip |
r11861: Fix inspired by Thomas Neumann <t.neumann@iku-ag.de> to ensure that
default case applies only to new files and correctly examines 8.3
and long names.
Jeremy.
-rw-r--r-- | source/smbd/filename.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/source/smbd/filename.c b/source/smbd/filename.c index b389b9c1ae7..2ee8ba1e4ff 100644 --- a/source/smbd/filename.c +++ b/source/smbd/filename.c @@ -150,9 +150,6 @@ BOOL unix_convert(pstring name,connection_struct *conn,char *saved_last_componen pstrcpy(saved_last_component, name); } - if (!conn->case_preserve || (mangle_is_8_3(name, False, SNUM(conn)) && !conn->short_case_preserve)) - strnorm(name, lp_defaultcase(SNUM(conn))); - start = name; pstrcpy(orig_path, name); @@ -301,16 +298,17 @@ BOOL unix_convert(pstring name,connection_struct *conn,char *saved_last_componen return(False); } - /* + /* * Just the last part of the name doesn't exist. - * We may need to strupper() or strlower() it in case - * this conversion is being used for file creation - * purposes. If the filename is of mixed case then - * don't normalise it. + * We need to strupper() or strlower() it as + * this conversion may be used for file creation + * purposes. Fix inspired by Thomas Neumann <t.neumann@iku-ag.de>. */ - - if (!conn->case_preserve && (!strhasupper(start) || !strhaslower(start))) + if (!conn->case_preserve || + (mangle_is_8_3(start, False, SNUM(conn)) && + !conn->short_case_preserve)) { strnorm(start, lp_defaultcase(SNUM(conn))); + } /* * check on the mangled stack to see if we can recover the |