diff --git a/fs/cifs/smbdes.c b/fs/cifs/smbdes.c
index 1a4a395c9376..1b1daf63f062 100644
--- a/fs/cifs/smbdes.c
+++ b/fs/cifs/smbdes.c
@@ -207,8 +207,10 @@ dohash(char *out, char *in, char *key, int forw)
 		return;
 
 	ki = kmalloc(16*48, GFP_KERNEL);
-	if(ki == NULL)
+	if(ki == NULL) {
+		kfree(pk1);
 		return;
+	}
 
 	cd = pk1 + 56;
 	pd1= cd  + 56;