Browse Source

cifs: check kmalloc before use

The kmalloc was not being checked - if it fails issue a warning
and return -ENOMEM to the caller.

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Fixes: b8da344b74c8 ("cifs: dynamic allocation of ntlmssp blob")
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
cc: Stable <stable@vger.kernel.org>`
Nicholas Mc Guire 7 years ago
parent
commit
126c97f4d0
1 changed files with 6 additions and 0 deletions
  1. 6 0
      fs/cifs/sess.c

+ 6 - 0
fs/cifs/sess.c

@@ -398,6 +398,12 @@ int build_ntlmssp_auth_blob(unsigned char **pbuffer,
 		goto setup_ntlmv2_ret;
 		goto setup_ntlmv2_ret;
 	}
 	}
 	*pbuffer = kmalloc(size_of_ntlmssp_blob(ses), GFP_KERNEL);
 	*pbuffer = kmalloc(size_of_ntlmssp_blob(ses), GFP_KERNEL);
+	if (!*pbuffer) {
+		rc = -ENOMEM;
+		cifs_dbg(VFS, "Error %d during NTLMSSP allocation\n", rc);
+		*buflen = 0;
+		goto setup_ntlmv2_ret;
+	}
 	sec_blob = (AUTHENTICATE_MESSAGE *)*pbuffer;
 	sec_blob = (AUTHENTICATE_MESSAGE *)*pbuffer;
 
 
 	memcpy(sec_blob->Signature, NTLMSSP_SIGNATURE, 8);
 	memcpy(sec_blob->Signature, NTLMSSP_SIGNATURE, 8);