]> err.no Git - linux-2.6/blobdiff - fs/cifs/smbdes.c
[CIFS] Missing flag on negprot needed for some servers to force packet signing
[linux-2.6] / fs / cifs / smbdes.c
index 2b193e422f837dbad39eea803b6a7ab38b31919d..1b1daf63f06202cbb01974086aec490d04f0dcde 100644 (file)
@@ -196,7 +196,7 @@ dohash(char *out, char *in, char *key, int forw)
        char c[28];
        char d[28];
        char *cd;
-       char ki[16][48];
+       char (*ki)[48];
        char *pd1;
        char l[32], r[32];
        char *rl;
@@ -206,6 +206,12 @@ dohash(char *out, char *in, char *key, int forw)
        if(pk1 == NULL)
                return;
 
+       ki = kmalloc(16*48, GFP_KERNEL);
+       if(ki == NULL) {
+               kfree(pk1);
+               return;
+       }
+
        cd = pk1 + 56;
        pd1= cd  + 56;
        rl = pd1 + 64;
@@ -243,6 +249,7 @@ dohash(char *out, char *in, char *key, int forw)
                er = kmalloc(48+48+32+32+32, GFP_KERNEL);
                if(er == NULL) {
                        kfree(pk1);
+                       kfree(ki);
                        return;
                }
                erk = er+48;
@@ -290,6 +297,7 @@ dohash(char *out, char *in, char *key, int forw)
 
        permute(out, rl, perm6, 64);
        kfree(pk1);
+       kfree(ki);
 }
 
 static void
@@ -364,6 +372,7 @@ E_P24(unsigned char *p21, unsigned char *c8, unsigned char *p24)
        smbhash(p24 + 16, c8, p21 + 14, 1);
 }
 
+#if 0 /* currently unsued */
 static void
 D_P16(unsigned char *p14, unsigned char *in, unsigned char *out)
 {
@@ -377,7 +386,6 @@ E_old_pw_hash(unsigned char *p14, unsigned char *in, unsigned char *out)
        smbhash(out, in, p14, 1);
        smbhash(out + 8, in + 8, p14 + 7, 1);
 }
-#if 0
 /* these routines are currently unneeded, but may be
        needed later */
 void