aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifs_unicode.h
diff options
context:
space:
mode:
authorSteve French <smfrench@us.ibm.com>2013-06-25 15:03:16 -0400
committerSteve French <smfrench@gmail.com>2013-06-26 18:31:45 -0400
commitfdf96a907c1fbb93c633e2b7ede3b8df26d6a4c0 (patch)
treec6941390435b58b2cb117fd1537d4d60bc6c5f47 /fs/cifs/cifs_unicode.h
parent2a2c41c07c710f2c1afe3748bdde40db9ea9d9e6 (diff)
Handle big endianness in NTLM (ntlmv2) authentication
This is RH bug 970891 Uppercasing of username during calculation of ntlmv2 hash fails because UniStrupr function does not handle big endian wchars. Also fix a comment in the same code to reflect its correct usage. [To make it easier for stable (rather than require 2nd patch) fixed this patch of Shirish's to remove endian warning generated by sparse -- steve f.] Reported-by: steve <sanpatr1@in.ibm.com> Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> Cc: <stable@kernel.org> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/cifs_unicode.h')
-rw-r--r--fs/cifs/cifs_unicode.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/cifs/cifs_unicode.h b/fs/cifs/cifs_unicode.h
index 4fb097468e21..fe8d6276410a 100644
--- a/fs/cifs/cifs_unicode.h
+++ b/fs/cifs/cifs_unicode.h
@@ -327,14 +327,14 @@ UniToupper(register wchar_t uc)
327/* 327/*
328 * UniStrupr: Upper case a unicode string 328 * UniStrupr: Upper case a unicode string
329 */ 329 */
330static inline wchar_t * 330static inline __le16 *
331UniStrupr(register wchar_t *upin) 331UniStrupr(register __le16 *upin)
332{ 332{
333 register wchar_t *up; 333 register __le16 *up;
334 334
335 up = upin; 335 up = upin;
336 while (*up) { /* For all characters */ 336 while (*up) { /* For all characters */
337 *up = UniToupper(*up); 337 *up = cpu_to_le16(UniToupper(le16_to_cpu(*up)));
338 up++; 338 up++;
339 } 339 }
340 return upin; /* Return input pointer */ 340 return upin; /* Return input pointer */