svn commit: samba r11862 - in trunk/source/smbd: .

jra at samba.org jra at samba.org
Tue Nov 22 16:21:56 GMT 2005


Author: jra
Date: 2005-11-22 16:21:55 +0000 (Tue, 22 Nov 2005)
New Revision: 11862

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11862

Log:
Fix inspired by Thomas Neumann <t.neumann at iku-ag.de> to ensure that
default case applies only to new files and correctly examines 8.3
and long names.
Jeremy.

Modified:
   trunk/source/smbd/filename.c


Changeset:
Modified: trunk/source/smbd/filename.c
===================================================================
--- trunk/source/smbd/filename.c	2005-11-22 16:21:52 UTC (rev 11861)
+++ trunk/source/smbd/filename.c	2005-11-22 16:21:55 UTC (rev 11862)
@@ -150,9 +150,6 @@
 			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 @@
 					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 at 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 



More information about the samba-cvs mailing list