target[j] = 0; 
cifsConvertToUCS(__le16 * target, const char *source, int maxlen, 		 const struct nls_table * cp, int mapChars){	int i,j,charlen;	int len_remaining = maxlen;	char src_char;	if(!mapChars) 		return cifs_strtoUCS((wchar_t *) target, source, PATH_MAX, cp);	for(i = 0, j = 0; i < maxlen; j++) {		src_char = source[i];		switch (src_char) {			case 0:				goto ctoUCS_out;			case ':':				target[j] = cpu_to_le16(UNI_COLON);				break;			case '*':				target[j] = cpu_to_le16(UNI_ASTERIK);				break;			case '?':				target[j] = cpu_to_le16(UNI_QUESTION);				break;			case '<':				target[j] = cpu_to_le16(UNI_LESSTHAN);				break;			case '>':				target[j] = cpu_to_le16(UNI_GRTRTHAN);				break;			case '|':				target[j] = cpu_to_le16(UNI_PIPE);				break;						/* BB We can not handle remapping slash until			   all the calls to build_path_from_dentry			   are modified, as they use slash as separator BB */			/* case '\\':				target[j] = cpu_to_le16(UNI_SLASH);				break;*/			default:				charlen = cp->char2uni(source+i,					len_remaining, target+j);				/* if no match, use question mark, which				at least in some cases servers as wild card */				if(charlen < 1) {					target[j] = cpu_to_le16(0x003f);					charlen = 1;				}				len_remaining -= charlen;				/* character may take more than one byte in the				   the source string, but will take exactly two				   bytes in the target string */				i+= charlen;				continue;		}		i++; /* move to next char in source string */		len_remaining--;	}ctoUCS_out:	return i;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/27876d02b30aa34bb1ad35b81ccc40c174282f31/misc.c/buggy/fs/cifs/misc.c