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)
committerPavel Shilovsky <pshilov@microsoft.com>
Mon, 5 Dec 2016 19:08:55 +0000 (11:08 -0800)
If maxBuf is not 0 but less than a size of SMB2 lock structure
we can end up with a memory corruption.

Cc: Stable <stable@vger.kernel.org>
Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
fs/cifs/smb2file.c

index f9e766f..b2aff0c 100644 (file)
@@ -260,7 +260,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;
        }