Re: [PATCH] CIFS: Rename *UCS* functions to *UTF16*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 17 Jan 2012 23:31:58 +0400
Pavel Shilovsky <piastry@xxxxxxxxxxx> wrote:

> to reflect the unicode encoding used by CIFS protocol.
> 
> Signed-off-by: Pavel Shilovsky <piastry@xxxxxxxxxxx>
> ---
>  fs/cifs/cifs_unicode.c |   41 ++++++------
>  fs/cifs/cifs_unicode.h |   20 +++---
>  fs/cifs/cifsencrypt.c  |   12 ++--
>  fs/cifs/cifssmb.c      |  162 +++++++++++++++++++++++++-----------------------
>  fs/cifs/connect.c      |    4 +-
>  fs/cifs/readdir.c      |    9 ++-
>  fs/cifs/sess.c         |   34 +++++-----
>  fs/cifs/smbencrypt.c   |    2 +-
>  8 files changed, 146 insertions(+), 138 deletions(-)
> 
> diff --git a/fs/cifs/cifs_unicode.c b/fs/cifs/cifs_unicode.c
> index 1b2e180..fbb9da9 100644
> --- a/fs/cifs/cifs_unicode.c
> +++ b/fs/cifs/cifs_unicode.c
> @@ -27,17 +27,17 @@
>  #include "cifs_debug.h"
>  
>  /*
> - * cifs_ucs2_bytes - how long will a string be after conversion?
> - * @ucs - pointer to input string
> + * cifs_utf16_bytes - how long will a string be after conversion?
> + * @utf16 - pointer to input string
>   * @maxbytes - don't go past this many bytes of input string
>   * @codepage - destination codepage
>   *
> - * Walk a ucs2le string and return the number of bytes that the string will
> + * Walk a utf16le string and return the number of bytes that the string will
>   * be after being converted to the given charset, not including any null
>   * termination required. Don't walk past maxbytes in the source buffer.
>   */
>  int
> -cifs_ucs2_bytes(const __le16 *from, int maxbytes,
> +cifs_utf16_bytes(const __le16 *from, int maxbytes,
>  		const struct nls_table *codepage)
>  {
>  	int i;
> @@ -122,7 +122,7 @@ cp_convert:
>  }
>  
>  /*
> - * cifs_from_ucs2 - convert utf16le string to local charset
> + * cifs_from_utf16 - convert utf16le string to local charset
>   * @to - destination buffer
>   * @from - source buffer
>   * @tolen - destination buffer size (in bytes)
> @@ -130,7 +130,7 @@ cp_convert:
>   * @codepage - codepage to which characters should be converted
>   * @mapchar - should characters be remapped according to the mapchars option?
>   *
> - * Convert a little-endian ucs2le string (as sent by the server) to a string
> + * Convert a little-endian utf16le string (as sent by the server) to a string
>   * in the provided codepage. The tolen and fromlen parameters are to ensure
>   * that the code doesn't walk off of the end of the buffer (which is always
>   * a danger if the alignment of the source buffer is off). The destination
> @@ -139,12 +139,12 @@ cp_convert:
>   * null terminator).
>   *
>   * Note that some windows versions actually send multiword UTF-16 characters
> - * instead of straight UCS-2. The linux nls routines however aren't able to
> + * instead of straight UTF16-2. The linux nls routines however aren't able to
>   * deal with those characters properly. In the event that we get some of
>   * those characters, they won't be translated properly.
>   */
>  int
> -cifs_from_ucs2(char *to, const __le16 *from, int tolen, int fromlen,
> +cifs_from_utf16(char *to, const __le16 *from, int tolen, int fromlen,
>  		 const struct nls_table *codepage, bool mapchar)
>  {
>  	int i, charlen, safelen;
> @@ -190,13 +190,13 @@ cifs_from_ucs2(char *to, const __le16 *from, int tolen, int fromlen,
>  }
>  
>  /*
> - * NAME:	cifs_strtoUCS()
> + * NAME:	cifs_strtoUTF16()
>   *
>   * FUNCTION:	Convert character string to unicode string
>   *
>   */
>  int
> -cifs_strtoUCS(__le16 *to, const char *from, int len,
> +cifs_strtoUTF16(__le16 *to, const char *from, int len,
>  	      const struct nls_table *codepage)
>  {
>  	int charlen;
> @@ -206,7 +206,7 @@ cifs_strtoUCS(__le16 *to, const char *from, int len,
>  	for (i = 0; len && *from; i++, from += charlen, len -= charlen) {
>  		charlen = codepage->char2uni(from, len, &wchar_to);
>  		if (charlen < 1) {
> -			cERROR(1, "strtoUCS: char2uni of 0x%x returned %d",
> +			cERROR(1, "strtoUTF16: char2uni of 0x%x returned %d",
>  				*from, charlen);
>  			/* A question mark */
>  			wchar_to = 0x003f;
> @@ -220,7 +220,8 @@ cifs_strtoUCS(__le16 *to, const char *from, int len,
>  }
>  
>  /*
> - * cifs_strndup_from_ucs - copy a string from wire format to the local codepage
> + * cifs_strndup_from_utf16 - copy a string from wire format to the local
> + * codepage
>   * @src - source string
>   * @maxlen - don't walk past this many bytes in the source string
>   * @is_unicode - is this a unicode string?
> @@ -231,19 +232,19 @@ cifs_strtoUCS(__le16 *to, const char *from, int len,
>   * error.
>   */
>  char *
> -cifs_strndup_from_ucs(const char *src, const int maxlen, const bool is_unicode,
> -	     const struct nls_table *codepage)
> +cifs_strndup_from_utf16(const char *src, const int maxlen,
> +			const bool is_unicode, const struct nls_table *codepage)
>  {
>  	int len;
>  	char *dst;
>  
>  	if (is_unicode) {
> -		len = cifs_ucs2_bytes((__le16 *) src, maxlen, codepage);
> +		len = cifs_utf16_bytes((__le16 *) src, maxlen, codepage);
>  		len += nls_nullsize(codepage);
>  		dst = kmalloc(len, GFP_KERNEL);
>  		if (!dst)
>  			return NULL;
> -		cifs_from_ucs2(dst, (__le16 *) src, len, maxlen, codepage,
> +		cifs_from_utf16(dst, (__le16 *) src, len, maxlen, codepage,
>  			       false);
>  	} else {
>  		len = strnlen(src, maxlen);
> @@ -264,7 +265,7 @@ cifs_strndup_from_ucs(const char *src, const int maxlen, const bool is_unicode,
>   * names are little endian 16 bit Unicode on the wire
>   */
>  int
> -cifsConvertToUCS(__le16 *target, const char *source, int srclen,
> +cifsConvertToUTF16(__le16 *target, const char *source, int srclen,
>  		 const struct nls_table *cp, int mapChars)
>  {
>  	int i, j, charlen;
> @@ -273,7 +274,7 @@ cifsConvertToUCS(__le16 *target, const char *source, int srclen,
>  	wchar_t tmp;
>  
>  	if (!mapChars)
> -		return cifs_strtoUCS(target, source, PATH_MAX, cp);
> +		return cifs_strtoUTF16(target, source, PATH_MAX, cp);
>  
>  	for (i = 0, j = 0; i < srclen; j++) {
>  		src_char = source[i];
> @@ -281,7 +282,7 @@ cifsConvertToUCS(__le16 *target, const char *source, int srclen,
>  		switch (src_char) {
>  		case 0:
>  			put_unaligned(0, &target[j]);
> -			goto ctoUCS_out;
> +			goto ctoUTF16_out;
>  		case ':':
>  			dst_char = cpu_to_le16(UNI_COLON);
>  			break;
> @@ -326,7 +327,7 @@ cifsConvertToUCS(__le16 *target, const char *source, int srclen,
>  		put_unaligned(dst_char, &target[j]);
>  	}
>  
> -ctoUCS_out:
> +ctoUTF16_out:
>  	return i;
>  }
>  
> diff --git a/fs/cifs/cifs_unicode.h b/fs/cifs/cifs_unicode.h
> index 6d02fd5..a513a54 100644
> --- a/fs/cifs/cifs_unicode.h
> +++ b/fs/cifs/cifs_unicode.h
> @@ -74,16 +74,16 @@ extern const struct UniCaseRange CifsUniLowerRange[];
>  #endif				/* UNIUPR_NOLOWER */
>  
>  #ifdef __KERNEL__
> -int cifs_from_ucs2(char *to, const __le16 *from, int tolen, int fromlen,
> -		   const struct nls_table *codepage, bool mapchar);
> -int cifs_ucs2_bytes(const __le16 *from, int maxbytes,
> -		    const struct nls_table *codepage);
> -int cifs_strtoUCS(__le16 *, const char *, int, const struct nls_table *);
> -char *cifs_strndup_from_ucs(const char *src, const int maxlen,
> -			    const bool is_unicode,
> -			    const struct nls_table *codepage);
> -extern int cifsConvertToUCS(__le16 *target, const char *source, int maxlen,
> -			const struct nls_table *cp, int mapChars);
> +int cifs_from_utf16(char *to, const __le16 *from, int tolen, int fromlen,
> +		    const struct nls_table *codepage, bool mapchar);
> +int cifs_utf16_bytes(const __le16 *from, int maxbytes,
> +		     const struct nls_table *codepage);
> +int cifs_strtoUTF16(__le16 *, const char *, int, const struct nls_table *);
> +char *cifs_strndup_from_utf16(const char *src, const int maxlen,
> +			      const bool is_unicode,
> +			      const struct nls_table *codepage);
> +extern int cifsConvertToUTF16(__le16 *target, const char *source, int maxlen,
> +			      const struct nls_table *cp, int mapChars);
>  
>  #endif
>  
> diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
> index 5d9b9ac..f6ddd3d 100644
> --- a/fs/cifs/cifsencrypt.c
> +++ b/fs/cifs/cifsencrypt.c
> @@ -327,7 +327,7 @@ build_avpair_blob(struct cifs_ses *ses, const struct nls_table *nls_cp)
>  	attrptr->type = cpu_to_le16(NTLMSSP_AV_NB_DOMAIN_NAME);
>  	attrptr->length = cpu_to_le16(2 * dlen);
>  	blobptr = (unsigned char *)attrptr + sizeof(struct ntlmssp2_name);
> -	cifs_strtoUCS((__le16 *)blobptr, ses->domainName, dlen, nls_cp);
> +	cifs_strtoUTF16((__le16 *)blobptr, ses->domainName, dlen, nls_cp);
>  
>  	return 0;
>  }
> @@ -376,7 +376,7 @@ find_domain_name(struct cifs_ses *ses, const struct nls_table *nls_cp)
>  					kmalloc(attrsize + 1, GFP_KERNEL);
>  				if (!ses->domainName)
>  						return -ENOMEM;
> -				cifs_from_ucs2(ses->domainName,
> +				cifs_from_utf16(ses->domainName,
>  					(__le16 *)blobptr, attrsize, attrsize,
>  					nls_cp, false);
>  				break;
> @@ -427,7 +427,7 @@ static int calc_ntlmv2_hash(struct cifs_ses *ses, char *ntlmv2_hash,
>  		rc = -ENOMEM;
>  		return rc;
>  	}
> -	len = cifs_strtoUCS((__le16 *)user, ses->user_name, len, nls_cp);
> +	len = cifs_strtoUTF16((__le16 *)user, ses->user_name, len, nls_cp);
>  	UniStrupr(user);
>  
>  	rc = crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash,
> @@ -448,8 +448,8 @@ static int calc_ntlmv2_hash(struct cifs_ses *ses, char *ntlmv2_hash,
>  			rc = -ENOMEM;
>  			return rc;
>  		}
> -		len = cifs_strtoUCS((__le16 *)domain, ses->domainName, len,
> -					nls_cp);
> +		len = cifs_strtoUTF16((__le16 *)domain, ses->domainName, len,
> +				      nls_cp);
>  		rc =
>  		crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash,
>  					(char *)domain, 2 * len);
> @@ -468,7 +468,7 @@ static int calc_ntlmv2_hash(struct cifs_ses *ses, char *ntlmv2_hash,
>  			rc = -ENOMEM;
>  			return rc;
>  		}
> -		len = cifs_strtoUCS((__le16 *)server, ses->serverName, len,
> +		len = cifs_strtoUTF16((__le16 *)server, ses->serverName, len,
>  					nls_cp);
>  		rc =
>  		crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash,
> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
> index 6600aa2..8b7794c 100644
> --- a/fs/cifs/cifssmb.c
> +++ b/fs/cifs/cifssmb.c
> @@ -821,8 +821,8 @@ PsxDelete:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, fileName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, fileName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else { /* BB add path length overrun check */
> @@ -893,8 +893,8 @@ DelFileRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->fileName, fileName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->fileName, fileName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {		/* BB improve check for buffer overruns BB */
> @@ -938,8 +938,8 @@ RmDirRetry:
>  		return rc;
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> -		name_len = cifsConvertToUCS((__le16 *) pSMB->DirName, dirName,
> -					 PATH_MAX, nls_codepage, remap);
> +		name_len = cifsConvertToUTF16((__le16 *) pSMB->DirName, dirName,
> +					      PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {		/* BB improve check for buffer overruns BB */
> @@ -981,8 +981,8 @@ MkDirRetry:
>  		return rc;
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> -		name_len = cifsConvertToUCS((__le16 *) pSMB->DirName, name,
> -					    PATH_MAX, nls_codepage, remap);
> +		name_len = cifsConvertToUTF16((__le16 *) pSMB->DirName, name,
> +					      PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {		/* BB improve check for buffer overruns BB */
> @@ -1030,8 +1030,8 @@ PsxCreat:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, name,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, name,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -1197,8 +1197,8 @@ OldOpenRetry:
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		count = 1;      /* account for one byte pad to word boundary */
>  		name_len =
> -		   cifsConvertToUCS((__le16 *) (pSMB->fileName + 1),
> -				    fileName, PATH_MAX, nls_codepage, remap);
> +		   cifsConvertToUTF16((__le16 *) (pSMB->fileName + 1),
> +				      fileName, PATH_MAX, nls_codepage, remap);
>  		name_len++;     /* trailing null */
>  		name_len *= 2;
>  	} else {                /* BB improve check for buffer overruns BB */
> @@ -1304,8 +1304,8 @@ openRetry:
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		count = 1;	/* account for one byte pad to word boundary */
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) (pSMB->fileName + 1),
> -				     fileName, PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) (pSMB->fileName + 1),
> +				       fileName, PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  		pSMB->NameLength = cpu_to_le16(name_len);
> @@ -2649,16 +2649,16 @@ renameRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->OldFileName, fromName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->OldFileName, fromName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  		pSMB->OldFileName[name_len] = 0x04;	/* pad */
>  	/* protocol requires ASCII signature byte on Unicode string */
>  		pSMB->OldFileName[name_len + 1] = 0x00;
>  		name_len2 =
> -		    cifsConvertToUCS((__le16 *)&pSMB->OldFileName[name_len + 2],
> -				     toName, PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
> +				       toName, PATH_MAX, nls_codepage, remap);
>  		name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
>  		name_len2 *= 2;	/* convert to bytes */
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -2738,10 +2738,12 @@ int CIFSSMBRenameOpenFile(const int xid, struct cifs_tcon *pTcon,
>  	/* unicode only call */
>  	if (target_name == NULL) {
>  		sprintf(dummy_string, "cifs%x", pSMB->hdr.Mid);
> -		len_of_str = cifsConvertToUCS((__le16 *)rename_info->target_name,
> +		len_of_str =
> +			cifsConvertToUTF16((__le16 *)rename_info->target_name,
>  					dummy_string, 24, nls_codepage, remap);
>  	} else {
> -		len_of_str = cifsConvertToUCS((__le16 *)rename_info->target_name,
> +		len_of_str =
> +			cifsConvertToUTF16((__le16 *)rename_info->target_name,
>  					target_name, PATH_MAX, nls_codepage,
>  					remap);
>  	}
> @@ -2795,17 +2797,17 @@ copyRetry:
>  	pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> -		name_len = cifsConvertToUCS((__le16 *) pSMB->OldFileName,
> -					    fromName, PATH_MAX, nls_codepage,
> -					    remap);
> +		name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
> +					      fromName, PATH_MAX, nls_codepage,
> +					      remap);
>  		name_len++;     /* trailing null */
>  		name_len *= 2;
>  		pSMB->OldFileName[name_len] = 0x04;     /* pad */
>  		/* protocol requires ASCII signature byte on Unicode string */
>  		pSMB->OldFileName[name_len + 1] = 0x00;
>  		name_len2 =
> -		    cifsConvertToUCS((__le16 *)&pSMB->OldFileName[name_len + 2],
> -				toName, PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
> +				       toName, PATH_MAX, nls_codepage, remap);
>  		name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
>  		name_len2 *= 2; /* convert to bytes */
>  	} else { 	/* BB improve the check for buffer overruns BB */
> @@ -2861,9 +2863,9 @@ createSymLinkRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifs_strtoUCS((__le16 *) pSMB->FileName, fromName, PATH_MAX
> -				  /* find define for this maxpathcomponent */
> -				  , nls_codepage);
> +		    cifs_strtoUTF16((__le16 *) pSMB->FileName, fromName,
> +				    /* find define for this maxpathcomponent */
> +				    PATH_MAX, nls_codepage);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  
> @@ -2885,9 +2887,9 @@ createSymLinkRetry:
>  	data_offset = (char *) (&pSMB->hdr.Protocol) + offset;
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len_target =
> -		    cifs_strtoUCS((__le16 *) data_offset, toName, PATH_MAX
> -				  /* find define for this maxpathcomponent */
> -				  , nls_codepage);
> +		    cifs_strtoUTF16((__le16 *) data_offset, toName, PATH_MAX
> +				    /* find define for this maxpathcomponent */
> +				    , nls_codepage);
>  		name_len_target++;	/* trailing null */
>  		name_len_target *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -2949,8 +2951,8 @@ createHardLinkRetry:
>  		return rc;
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> -		name_len = cifsConvertToUCS((__le16 *) pSMB->FileName, toName,
> -					    PATH_MAX, nls_codepage, remap);
> +		name_len = cifsConvertToUTF16((__le16 *) pSMB->FileName, toName,
> +					      PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  
> @@ -2972,8 +2974,8 @@ createHardLinkRetry:
>  	data_offset = (char *) (&pSMB->hdr.Protocol) + offset;
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len_target =
> -		    cifsConvertToUCS((__le16 *) data_offset, fromName, PATH_MAX,
> -				     nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) data_offset, fromName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len_target++;	/* trailing null */
>  		name_len_target *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -3042,8 +3044,8 @@ winCreateHardLinkRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->OldFileName, fromName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->OldFileName, fromName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  
> @@ -3051,8 +3053,8 @@ winCreateHardLinkRetry:
>  		pSMB->OldFileName[name_len] = 0x04;
>  		pSMB->OldFileName[name_len + 1] = 0x00; /* pad */
>  		name_len2 =
> -		    cifsConvertToUCS((__le16 *)&pSMB->OldFileName[name_len + 2],
> -				     toName, PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
> +				       toName, PATH_MAX, nls_codepage, remap);
>  		name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
>  		name_len2 *= 2;	/* convert to bytes */
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -3108,8 +3110,8 @@ querySymLinkRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifs_strtoUCS((__le16 *) pSMB->FileName, searchName,
> -				  PATH_MAX, nls_codepage);
> +			cifs_strtoUTF16((__le16 *) pSMB->FileName, searchName,
> +					PATH_MAX, nls_codepage);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -3166,8 +3168,8 @@ querySymLinkRetry:
>  				is_unicode = false;
>  
>  			/* BB FIXME investigate remapping reserved chars here */
> -			*symlinkinfo = cifs_strndup_from_ucs(data_start, count,
> -						    is_unicode, nls_codepage);
> +			*symlinkinfo = cifs_strndup_from_utf16(data_start,
> +					count, is_unicode, nls_codepage);
>  			if (!*symlinkinfo)
>  				rc = -ENOMEM;
>  		}
> @@ -3450,8 +3452,9 @@ queryAclRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -			cifsConvertToUCS((__le16 *) pSMB->FileName, searchName,
> -					 PATH_MAX, nls_codepage, remap);
> +			cifsConvertToUTF16((__le16 *) pSMB->FileName,
> +					   searchName, PATH_MAX, nls_codepage,
> +					   remap);
>  		name_len++;     /* trailing null */
>  		name_len *= 2;
>  		pSMB->FileName[name_len] = 0;
> @@ -3537,8 +3540,8 @@ setAclRetry:
>  		return rc;
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -			cifsConvertToUCS((__le16 *) pSMB->FileName, fileName,
> -				      PATH_MAX, nls_codepage, remap);
> +			cifsConvertToUTF16((__le16 *) pSMB->FileName, fileName,
> +					   PATH_MAX, nls_codepage, remap);
>  		name_len++;     /* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -3948,8 +3951,9 @@ QInfRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -			cifsConvertToUCS((__le16 *) pSMB->FileName, searchName,
> -					PATH_MAX, nls_codepage, remap);
> +			cifsConvertToUTF16((__le16 *) pSMB->FileName,
> +					   searchName, PATH_MAX, nls_codepage,
> +					   remap);
>  		name_len++;     /* trailing null */
>  		name_len *= 2;
>  	} else {
> @@ -4086,8 +4090,8 @@ QPathInfoRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, searchName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, searchName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -4255,8 +4259,8 @@ UnixQPathInfoRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, searchName,
> -				  PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, searchName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -4344,8 +4348,8 @@ findFirstRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, searchName,
> -				 PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, searchName,
> +				       PATH_MAX, nls_codepage, remap);
>  		/* We can not add the asterik earlier in case
>  		it got remapped to 0xF03A as if it were part of the
>  		directory name instead of a wildcard */
> @@ -4656,8 +4660,9 @@ GetInodeNumberRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -			cifsConvertToUCS((__le16 *) pSMB->FileName, searchName,
> -					 PATH_MAX, nls_codepage, remap);
> +			cifsConvertToUTF16((__le16 *) pSMB->FileName,
> +					   searchName, PATH_MAX, nls_codepage,
> +					   remap);
>  		name_len++;     /* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -4794,9 +4799,9 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
>  				rc = -ENOMEM;
>  				goto parse_DFS_referrals_exit;
>  			}
> -			cifsConvertToUCS((__le16 *) tmp, searchName,
> -					PATH_MAX, nls_codepage, remap);
> -			node->path_consumed = cifs_ucs2_bytes(tmp,
> +			cifsConvertToUTF16((__le16 *) tmp, searchName,
> +					   PATH_MAX, nls_codepage, remap);
> +			node->path_consumed = cifs_utf16_bytes(tmp,
>  					le16_to_cpu(pSMBr->PathConsumed),
>  					nls_codepage);
>  			kfree(tmp);
> @@ -4809,8 +4814,8 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
>  		/* copy DfsPath */
>  		temp = (char *)ref + le16_to_cpu(ref->DfsPathOffset);
>  		max_len = data_end - temp;
> -		node->path_name = cifs_strndup_from_ucs(temp, max_len,
> -						      is_unicode, nls_codepage);
> +		node->path_name = cifs_strndup_from_utf16(temp, max_len,
> +						is_unicode, nls_codepage);
>  		if (!node->path_name) {
>  			rc = -ENOMEM;
>  			goto parse_DFS_referrals_exit;
> @@ -4819,8 +4824,8 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
>  		/* copy link target UNC */
>  		temp = (char *)ref + le16_to_cpu(ref->NetworkAddressOffset);
>  		max_len = data_end - temp;
> -		node->node_name = cifs_strndup_from_ucs(temp, max_len,
> -						      is_unicode, nls_codepage);
> +		node->node_name = cifs_strndup_from_utf16(temp, max_len,
> +						is_unicode, nls_codepage);
>  		if (!node->node_name)
>  			rc = -ENOMEM;
>  	}
> @@ -4873,8 +4878,9 @@ getDFSRetry:
>  	if (ses->capabilities & CAP_UNICODE) {
>  		pSMB->hdr.Flags2 |= SMBFLG2_UNICODE;
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->RequestFileName,
> -				     searchName, PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->RequestFileName,
> +				       searchName, PATH_MAX, nls_codepage,
> +				       remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -5506,8 +5512,8 @@ SetEOFRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, fileName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, fileName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -5796,8 +5802,8 @@ SetTimesRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, fileName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, fileName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -5877,8 +5883,8 @@ SetAttrLgcyRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -			ConvertToUCS((__le16 *) pSMB->fileName, fileName,
> -				PATH_MAX, nls_codepage);
> +			ConvertToUTF16((__le16 *) pSMB->fileName, fileName,
> +				       PATH_MAX, nls_codepage);
>  		name_len++;     /* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -6030,8 +6036,8 @@ setPermsRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, fileName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, fileName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -6123,8 +6129,8 @@ QAllEAsRetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		list_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, searchName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, searchName,
> +				       PATH_MAX, nls_codepage, remap);
>  		list_len++;	/* trailing null */
>  		list_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> @@ -6301,8 +6307,8 @@ SetEARetry:
>  
>  	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>  		name_len =
> -		    cifsConvertToUCS((__le16 *) pSMB->FileName, fileName,
> -				     PATH_MAX, nls_codepage, remap);
> +		    cifsConvertToUTF16((__le16 *) pSMB->FileName, fileName,
> +				       PATH_MAX, nls_codepage, remap);
>  		name_len++;	/* trailing null */
>  		name_len *= 2;
>  	} else {	/* BB improve the check for buffer overruns BB */
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index f3670cf..2838195 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -3478,7 +3478,7 @@ CIFSTCon(unsigned int xid, struct cifs_ses *ses,
>  	if (ses->capabilities & CAP_UNICODE) {
>  		smb_buffer->Flags2 |= SMBFLG2_UNICODE;
>  		length =
> -		    cifs_strtoUCS((__le16 *) bcc_ptr, tree,
> +		    cifs_strtoUTF16((__le16 *) bcc_ptr, tree,
>  			6 /* max utf8 char length in bytes */ *
>  			(/* server len*/ + 256 /* share len */), nls_codepage);
>  		bcc_ptr += 2 * length;	/* convert num 16 bit words to bytes */
> @@ -3533,7 +3533,7 @@ CIFSTCon(unsigned int xid, struct cifs_ses *ses,
>  
>  		/* mostly informational -- no need to fail on error here */
>  		kfree(tcon->nativeFileSystem);
> -		tcon->nativeFileSystem = cifs_strndup_from_ucs(bcc_ptr,
> +		tcon->nativeFileSystem = cifs_strndup_from_utf16(bcc_ptr,
>  						      bytes_left, is_unicode,
>  						      nls_codepage);
>  
> diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
> index a090bbe..e2bbc68 100644
> --- a/fs/cifs/readdir.c
> +++ b/fs/cifs/readdir.c
> @@ -647,10 +647,11 @@ static int cifs_filldir(char *find_entry, struct file *file, filldir_t filldir,
>  
>  		name.name = scratch_buf;
>  		name.len =
> -			cifs_from_ucs2((char *)name.name, (__le16 *)de.name,
> -				       UNICODE_NAME_MAX,
> -				       min(de.namelen, (size_t)max_len), nlt,
> -				       cifs_sb->mnt_cifs_flags &
> +			cifs_from_utf16((char *)name.name, (__le16 *)de.name,
> +					UNICODE_NAME_MAX,
> +					min_t(size_t, de.namelen,
> +					      (size_t)max_len), nlt,
> +					cifs_sb->mnt_cifs_flags &
>  						CIFS_MOUNT_MAP_SPECIAL_CHR);
>  		name.len -= nls_nullsize(nlt);
>  	} else {
> diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
> index 4ec3ee9..d85efad 100644
> --- a/fs/cifs/sess.c
> +++ b/fs/cifs/sess.c
> @@ -167,16 +167,16 @@ unicode_oslm_strings(char **pbcc_area, const struct nls_table *nls_cp)
>  	int bytes_ret = 0;
>  
>  	/* Copy OS version */
> -	bytes_ret = cifs_strtoUCS((__le16 *)bcc_ptr, "Linux version ", 32,
> -				  nls_cp);
> +	bytes_ret = cifs_strtoUTF16((__le16 *)bcc_ptr, "Linux version ", 32,
> +				    nls_cp);
>  	bcc_ptr += 2 * bytes_ret;
> -	bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, init_utsname()->release,
> -				  32, nls_cp);
> +	bytes_ret = cifs_strtoUTF16((__le16 *) bcc_ptr, init_utsname()->release,
> +				    32, nls_cp);
>  	bcc_ptr += 2 * bytes_ret;
>  	bcc_ptr += 2; /* trailing null */
>  
> -	bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, CIFS_NETWORK_OPSYS,
> -				  32, nls_cp);
> +	bytes_ret = cifs_strtoUTF16((__le16 *) bcc_ptr, CIFS_NETWORK_OPSYS,
> +				    32, nls_cp);
>  	bcc_ptr += 2 * bytes_ret;
>  	bcc_ptr += 2; /* trailing null */
>  
> @@ -197,8 +197,8 @@ static void unicode_domain_string(char **pbcc_area, struct cifs_ses *ses,
>  		*(bcc_ptr+1) = 0;
>  		bytes_ret = 0;
>  	} else
> -		bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, ses->domainName,
> -					  256, nls_cp);
> +		bytes_ret = cifs_strtoUTF16((__le16 *) bcc_ptr, ses->domainName,
> +					    256, nls_cp);
>  	bcc_ptr += 2 * bytes_ret;
>  	bcc_ptr += 2;  /* account for null terminator */
>  
> @@ -226,8 +226,8 @@ static void unicode_ssetup_strings(char **pbcc_area, struct cifs_ses *ses,
>  		*bcc_ptr = 0;
>  		*(bcc_ptr+1) = 0;
>  	} else {
> -		bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, ses->user_name,
> -					  MAX_USERNAME_SIZE, nls_cp);
> +		bytes_ret = cifs_strtoUTF16((__le16 *) bcc_ptr, ses->user_name,
> +					    MAX_USERNAME_SIZE, nls_cp);
>  	}
>  	bcc_ptr += 2 * bytes_ret;
>  	bcc_ptr += 2; /* account for null termination */
> @@ -287,7 +287,7 @@ decode_unicode_ssetup(char **pbcc_area, int bleft, struct cifs_ses *ses,
>  	cFYI(1, "bleft %d", bleft);
>  
>  	kfree(ses->serverOS);
> -	ses->serverOS = cifs_strndup_from_ucs(data, bleft, true, nls_cp);
> +	ses->serverOS = cifs_strndup_from_utf16(data, bleft, true, nls_cp);
>  	cFYI(1, "serverOS=%s", ses->serverOS);
>  	len = (UniStrnlen((wchar_t *) data, bleft / 2) * 2) + 2;
>  	data += len;
> @@ -296,7 +296,7 @@ decode_unicode_ssetup(char **pbcc_area, int bleft, struct cifs_ses *ses,
>  		return;
>  
>  	kfree(ses->serverNOS);
> -	ses->serverNOS = cifs_strndup_from_ucs(data, bleft, true, nls_cp);
> +	ses->serverNOS = cifs_strndup_from_utf16(data, bleft, true, nls_cp);
>  	cFYI(1, "serverNOS=%s", ses->serverNOS);
>  	len = (UniStrnlen((wchar_t *) data, bleft / 2) * 2) + 2;
>  	data += len;
> @@ -305,7 +305,7 @@ decode_unicode_ssetup(char **pbcc_area, int bleft, struct cifs_ses *ses,
>  		return;
>  
>  	kfree(ses->serverDomain);
> -	ses->serverDomain = cifs_strndup_from_ucs(data, bleft, true, nls_cp);
> +	ses->serverDomain = cifs_strndup_from_utf16(data, bleft, true, nls_cp);
>  	cFYI(1, "serverDomain=%s", ses->serverDomain);
>  
>  	return;
> @@ -502,8 +502,8 @@ static int build_ntlmssp_auth_blob(unsigned char *pbuffer,
>  		tmp += 2;
>  	} else {
>  		int len;
> -		len = cifs_strtoUCS((__le16 *)tmp, ses->domainName,
> -				    MAX_USERNAME_SIZE, nls_cp);
> +		len = cifs_strtoUTF16((__le16 *)tmp, ses->domainName,
> +				      MAX_USERNAME_SIZE, nls_cp);
>  		len *= 2; /* unicode is 2 bytes each */
>  		sec_blob->DomainName.BufferOffset = cpu_to_le32(tmp - pbuffer);
>  		sec_blob->DomainName.Length = cpu_to_le16(len);
> @@ -518,8 +518,8 @@ static int build_ntlmssp_auth_blob(unsigned char *pbuffer,
>  		tmp += 2;
>  	} else {
>  		int len;
> -		len = cifs_strtoUCS((__le16 *)tmp, ses->user_name,
> -				    MAX_USERNAME_SIZE, nls_cp);
> +		len = cifs_strtoUTF16((__le16 *)tmp, ses->user_name,
> +				      MAX_USERNAME_SIZE, nls_cp);
>  		len *= 2; /* unicode is 2 bytes each */
>  		sec_blob->UserName.BufferOffset = cpu_to_le32(tmp - pbuffer);
>  		sec_blob->UserName.Length = cpu_to_le16(len);
> diff --git a/fs/cifs/smbencrypt.c b/fs/cifs/smbencrypt.c
> index 80d8508..d5cd9aa 100644
> --- a/fs/cifs/smbencrypt.c
> +++ b/fs/cifs/smbencrypt.c
> @@ -213,7 +213,7 @@ E_md4hash(const unsigned char *passwd, unsigned char *p16,
>  
>  	/* Password cannot be longer than 128 characters */
>  	if (passwd) /* Password must be converted to NT unicode */
> -		len = cifs_strtoUCS(wpwd, passwd, 128, codepage);
> +		len = cifs_strtoUTF16(wpwd, passwd, 128, codepage);
>  	else {
>  		len = 0;
>  		*wpwd = 0; /* Ensure string is null terminated */


Looks fine. Normally I don't go for this sort of deck chair
rearrangement, but I guess it makes sense to rename all of this
before the smb2 code hits the tree.

Acked-by: Jeff Layton <jlayton@xxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux