|
@@ -821,8 +821,8 @@ PsxDelete:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB add path length overrun check */
|
|
} else { /* BB add path length overrun check */
|
|
@@ -893,8 +893,8 @@ DelFileRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
@@ -938,8 +938,8 @@ RmDirRetry:
|
|
return rc;
|
|
return rc;
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
@@ -981,8 +981,8 @@ MkDirRetry:
|
|
return rc;
|
|
return rc;
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
@@ -1030,8 +1030,8 @@ PsxCreat:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -1197,8 +1197,8 @@ OldOpenRetry:
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
count = 1; /* account for one byte pad to word boundary */
|
|
count = 1; /* account for one byte pad to word boundary */
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
} else { /* BB improve check for buffer overruns BB */
|
|
@@ -1304,8 +1304,8 @@ openRetry:
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
count = 1; /* account for one byte pad to word boundary */
|
|
count = 1; /* account for one byte pad to word boundary */
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
pSMB->NameLength = cpu_to_le16(name_len);
|
|
pSMB->NameLength = cpu_to_le16(name_len);
|
|
@@ -2649,16 +2649,16 @@ renameRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
pSMB->OldFileName[name_len] = 0x04; /* pad */
|
|
pSMB->OldFileName[name_len] = 0x04; /* pad */
|
|
/* protocol requires ASCII signature byte on Unicode string */
|
|
/* protocol requires ASCII signature byte on Unicode string */
|
|
pSMB->OldFileName[name_len + 1] = 0x00;
|
|
pSMB->OldFileName[name_len + 1] = 0x00;
|
|
name_len2 =
|
|
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 += 1 /* trailing null */ + 1 /* Signature word */ ;
|
|
name_len2 *= 2; /* convert to bytes */
|
|
name_len2 *= 2; /* convert to bytes */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} 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 */
|
|
/* unicode only call */
|
|
if (target_name == NULL) {
|
|
if (target_name == NULL) {
|
|
sprintf(dummy_string, "cifs%x", pSMB->hdr.Mid);
|
|
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);
|
|
dummy_string, 24, nls_codepage, remap);
|
|
} else {
|
|
} 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,
|
|
target_name, PATH_MAX, nls_codepage,
|
|
remap);
|
|
remap);
|
|
}
|
|
}
|
|
@@ -2795,17 +2797,17 @@ copyRetry:
|
|
pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
|
|
pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
pSMB->OldFileName[name_len] = 0x04; /* pad */
|
|
pSMB->OldFileName[name_len] = 0x04; /* pad */
|
|
/* protocol requires ASCII signature byte on Unicode string */
|
|
/* protocol requires ASCII signature byte on Unicode string */
|
|
pSMB->OldFileName[name_len + 1] = 0x00;
|
|
pSMB->OldFileName[name_len + 1] = 0x00;
|
|
name_len2 =
|
|
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 += 1 /* trailing null */ + 1 /* Signature word */ ;
|
|
name_len2 *= 2; /* convert to bytes */
|
|
name_len2 *= 2; /* convert to bytes */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -2861,9 +2863,9 @@ createSymLinkRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
|
|
|
|
@@ -2885,9 +2887,9 @@ createSymLinkRetry:
|
|
data_offset = (char *) (&pSMB->hdr.Protocol) + offset;
|
|
data_offset = (char *) (&pSMB->hdr.Protocol) + offset;
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len_target =
|
|
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++; /* trailing null */
|
|
name_len_target *= 2;
|
|
name_len_target *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -2949,8 +2951,8 @@ createHardLinkRetry:
|
|
return rc;
|
|
return rc;
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
|
|
|
|
@@ -2972,8 +2974,8 @@ createHardLinkRetry:
|
|
data_offset = (char *) (&pSMB->hdr.Protocol) + offset;
|
|
data_offset = (char *) (&pSMB->hdr.Protocol) + offset;
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len_target =
|
|
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++; /* trailing null */
|
|
name_len_target *= 2;
|
|
name_len_target *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -3042,8 +3044,8 @@ winCreateHardLinkRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
|
|
|
|
@@ -3051,8 +3053,8 @@ winCreateHardLinkRetry:
|
|
pSMB->OldFileName[name_len] = 0x04;
|
|
pSMB->OldFileName[name_len] = 0x04;
|
|
pSMB->OldFileName[name_len + 1] = 0x00; /* pad */
|
|
pSMB->OldFileName[name_len + 1] = 0x00; /* pad */
|
|
name_len2 =
|
|
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 += 1 /* trailing null */ + 1 /* Signature word */ ;
|
|
name_len2 *= 2; /* convert to bytes */
|
|
name_len2 *= 2; /* convert to bytes */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -3108,8 +3110,8 @@ querySymLinkRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -3166,8 +3168,8 @@ querySymLinkRetry:
|
|
is_unicode = false;
|
|
is_unicode = false;
|
|
|
|
|
|
/* BB FIXME investigate remapping reserved chars here */
|
|
/* 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)
|
|
if (!*symlinkinfo)
|
|
rc = -ENOMEM;
|
|
rc = -ENOMEM;
|
|
}
|
|
}
|
|
@@ -3450,8 +3452,9 @@ queryAclRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
pSMB->FileName[name_len] = 0;
|
|
pSMB->FileName[name_len] = 0;
|
|
@@ -3537,8 +3540,8 @@ setAclRetry:
|
|
return rc;
|
|
return rc;
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -3948,8 +3951,9 @@ QInfRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else {
|
|
} else {
|
|
@@ -4086,8 +4090,8 @@ QPathInfoRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -4255,8 +4259,8 @@ UnixQPathInfoRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -4344,8 +4348,8 @@ findFirstRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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
|
|
/* We can not add the asterik earlier in case
|
|
it got remapped to 0xF03A as if it were part of the
|
|
it got remapped to 0xF03A as if it were part of the
|
|
directory name instead of a wildcard */
|
|
directory name instead of a wildcard */
|
|
@@ -4656,8 +4660,9 @@ GetInodeNumberRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -4794,9 +4799,9 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
|
|
rc = -ENOMEM;
|
|
rc = -ENOMEM;
|
|
goto parse_DFS_referrals_exit;
|
|
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),
|
|
le16_to_cpu(pSMBr->PathConsumed),
|
|
nls_codepage);
|
|
nls_codepage);
|
|
kfree(tmp);
|
|
kfree(tmp);
|
|
@@ -4809,8 +4814,8 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
|
|
/* copy DfsPath */
|
|
/* copy DfsPath */
|
|
temp = (char *)ref + le16_to_cpu(ref->DfsPathOffset);
|
|
temp = (char *)ref + le16_to_cpu(ref->DfsPathOffset);
|
|
max_len = data_end - temp;
|
|
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) {
|
|
if (!node->path_name) {
|
|
rc = -ENOMEM;
|
|
rc = -ENOMEM;
|
|
goto parse_DFS_referrals_exit;
|
|
goto parse_DFS_referrals_exit;
|
|
@@ -4819,8 +4824,8 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
|
|
/* copy link target UNC */
|
|
/* copy link target UNC */
|
|
temp = (char *)ref + le16_to_cpu(ref->NetworkAddressOffset);
|
|
temp = (char *)ref + le16_to_cpu(ref->NetworkAddressOffset);
|
|
max_len = data_end - temp;
|
|
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)
|
|
if (!node->node_name)
|
|
rc = -ENOMEM;
|
|
rc = -ENOMEM;
|
|
}
|
|
}
|
|
@@ -4873,8 +4878,9 @@ getDFSRetry:
|
|
if (ses->capabilities & CAP_UNICODE) {
|
|
if (ses->capabilities & CAP_UNICODE) {
|
|
pSMB->hdr.Flags2 |= SMBFLG2_UNICODE;
|
|
pSMB->hdr.Flags2 |= SMBFLG2_UNICODE;
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -5506,8 +5512,8 @@ SetEOFRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -5796,8 +5802,8 @@ SetTimesRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -5877,8 +5883,8 @@ SetAttrLgcyRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -6030,8 +6036,8 @@ setPermsRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -6123,8 +6129,8 @@ QAllEAsRetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
list_len =
|
|
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++; /* trailing null */
|
|
list_len *= 2;
|
|
list_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
@@ -6301,8 +6307,8 @@ SetEARetry:
|
|
|
|
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
|
|
name_len =
|
|
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++; /* trailing null */
|
|
name_len *= 2;
|
|
name_len *= 2;
|
|
} else { /* BB improve the check for buffer overruns BB */
|
|
} else { /* BB improve the check for buffer overruns BB */
|