Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.24 /fs/cifs/cifsencrypt.c

Filename:/fs/cifs/cifsencrypt.c
Lines Added:8
Lines Deleted:6
Also changed in: (Previous) 2.6.24-rc8  2.6.24-rc7  2.6.24-rc6  2.6.24-rc5  2.6.24-rc4  2.6.24-rc3 
(Following) 2.6.26-git15  2.6.26-git16  2.6.26-git17  2.6.26-git18  2.6.27-rc1  2.6.27-rc2 

Location
[  2.6.24
  [  fs
    [  cifs
       o  cifsencrypt.c

Patch

diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
index 3627229..4ff8939 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/cifs/cifsencrypt.c
@@ -99,15 +99,16 @@ static int cifs_calc_signature2(const struct kvec *iov, int n_vec,
    MD5Init(&context);
    MD5Update(&context, (char *)&key->data, key->len);
    for (i = 0; i < n_vec; i++) {
+      if (iov[i].iov_len == 0)
+         continue;
       if (iov[i].iov_base == NULL) {
          cERROR(1, ("null iovec entry"));
          return -EIO;
-      } else if (iov[i].iov_len == 0)
-         break; /* bail out if we are sent nothing to sign */
+      }
       /* The first entry includes a length field (which does not get
          signed that occupies the first 4 bytes before the header */
       if (i == 0) {
-         if (iov[0].iov_len <= 8 ) /* cmd field at offset 9 */
+         if (iov[0].iov_len <= 8) /* cmd field at offset 9 */
             break; /* nothing to sign or corrupt header */
          MD5Update(&context, iov[0].iov_base+4,
               iov[0].iov_len-4);
@@ -122,7 +123,7 @@ static int cifs_calc_signature2(const struct kvec *iov, int n_vec,
 
 
 int cifs_sign_smb2(struct kvec *iov, int n_vec, struct TCP_Server_Info *server,
-         __u32 * pexpected_response_sequence_number)
+         __u32 *pexpected_response_sequence_number)
 {
    int rc = 0;
    char smb_signature[20];
@@ -345,7 +346,7 @@ static int calc_ntlmv2_hash(struct cifsSesInfo *ses,
    user = kmalloc(2 + (len * 2), GFP_KERNEL);
    if (user == NULL)
       goto calc_exit_2;
-   len = cifs_strtoUCS(user, ses->userName, len, nls_cp);
+   len = cifs_strtoUCS((__le16 *)user, ses->userName, len, nls_cp);
    UniStrupr(user);
    hmac_md5_update((char *)user, 2*len, pctxt);
 
@@ -356,7 +357,8 @@ static int calc_ntlmv2_hash(struct cifsSesInfo *ses,
       domain = kmalloc(2 + (len * 2), GFP_KERNEL);
       if (domain == NULL)
          goto calc_exit_1;
-      len = cifs_strtoUCS(domain, ses->domainName, len, nls_cp);
+      len = cifs_strtoUCS((__le16 *)domain, ses->domainName, len,
+               nls_cp);
       /* the following line was removed since it didn't work well
          with lower cased domain name that passed as an option.
          Maybe converting the domain name earlier makes sense */


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.