At smbd.trans2.c:329, strcasecmp() is called, but this should be StrCaseCmp(). strcasecmp() does not care of multibyte characters, for example it recognize a Japanese character 0x8141 and 0x8161 is same one, but they should be different. This affects that the 0x8161's long name becomes 0x8141 (0x8161 is correct). To replace strcasecmp() to StrCaseCmp() solves the problem. Here is a patch. --- smbd/trans2.c.org Sun Jun 22 20:09:02 2003 +++ smbd/trans2.c Thu Jun 26 02:27:59 2003 @@ -326,7 +326,7 @@ return False; if (case_sig) return strcmp(str,mask)==0; - return strcasecmp(str,mask) == 0; + return StrCaseCmp(str,mask) == 0; } /**************************************************************************** This patch is found by MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>
Yes, this looks like the correct fix. Applied on 7/1/2003 to the SAMBA_3_0 tree. Jeremy.
originally reported against 3.0.0beta1. CLeaning out non-production release versions.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.