]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
CIFS: Fix a possible memory corruption in push locks
authorPavel Shilovsky <pshilov@microsoft.com>
Wed, 30 Nov 2016 00:14:43 +0000 (16:14 -0800)
committerWilly Tarreau <w@1wt.eu>
Tue, 20 Jun 2017 06:02:59 +0000 (08:02 +0200)
commit e3d240e9d505fc67f8f8735836df97a794bbd946 upstream.

If maxBuf is not 0 but less than a size of SMB2 lock structure
we can end up with a memory corruption.

Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
fs/cifs/smb2file.c

index d801f63cddd03d707ac2bf20c97fd61c40ee4043..866caf1d2bea154f7f4e6365d6ea645f121dcaee 100644 (file)
@@ -266,7 +266,7 @@ smb2_push_mandatory_locks(struct cifsFileInfo *cfile)
         * and check it for zero before using.
         */
        max_buf = tlink_tcon(cfile->tlink)->ses->server->maxBuf;
-       if (!max_buf) {
+       if (max_buf < sizeof(struct smb2_lock_element)) {
                free_xid(xid);
                return -EINVAL;
        }