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

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

 



merged into cifs-2.6.git

but had to fix up cifsencrypt.c since it didn't merge cleanly

On Wed, Jan 18, 2012 at 12:58 PM, Jeff Layton <jlayton@xxxxxxxxx> wrote:
> 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



-- 
Thanks,

Steve
--
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