3.16.52-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: David Disseldorp ddiss@suse.de
commit fe83bebc05228e838ed5cbbc62712ab50dd40e18 upstream.
Fixes: ff1c038addc4 ("Check SMB3 dialects against downgrade attacks") Signed-off-by: David Disseldorp ddiss@suse.de Signed-off-by: Steve French smfrench@gmail.com Signed-off-by: Ben Hutchings ben@decadent.org.uk --- fs/cifs/smb2pdu.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
--- a/fs/cifs/smb2pdu.c +++ b/fs/cifs/smb2pdu.c @@ -479,7 +479,7 @@ int smb3_validate_negotiate(const unsign { int rc = 0; struct validate_negotiate_info_req vneg_inbuf; - struct validate_negotiate_info_rsp *pneg_rsp; + struct validate_negotiate_info_rsp *pneg_rsp = NULL; u32 rsplen;
cifs_dbg(FYI, "validate negotiate\n"); @@ -536,7 +536,7 @@ int smb3_validate_negotiate(const unsign
/* relax check since Mac returns max bufsize allowed on ioctl */ if (rsplen > CIFSMaxBufSize) - return -EIO; + goto err_rsp_free; }
/* check validate negotiate info response matches what we got earlier */ @@ -555,10 +555,13 @@ int smb3_validate_negotiate(const unsign
/* validate negotiate successful */ cifs_dbg(FYI, "validate negotiate info successful\n"); + kfree(pneg_rsp); return 0;
vneg_out: cifs_dbg(VFS, "protocol revalidation - security settings mismatch\n"); +err_rsp_free: + kfree(pneg_rsp); return -EIO; }