]> xenbits.xensource.com Git - arm/linux.git/commitdiff
cifs: set correct max-buffer-size for smb2_ioctl_init()
authorRonnie Sahlberg <lsahlber@redhat.com>
Wed, 8 Jan 2020 03:08:07 +0000 (13:08 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Feb 2020 09:34:37 +0000 (09:34 +0000)
commit 731b82bb1750a906c1e7f070aedf5505995ebea7 upstream.

Fix two places where we need to adjust down the max response size for
ioctl when it is used together with compounding.

Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/cifs/smb2ops.c

index b5c1cba3e6a17c6b3bce6a2be53b2cf7c904456c..662256fa2a18981f620d4a2749b452ac3fc8d31a 100644 (file)
@@ -1461,7 +1461,9 @@ smb2_ioctl_query_info(const unsigned int xid,
                                             COMPOUND_FID, COMPOUND_FID,
                                             qi.info_type, true, buffer,
                                             qi.output_buffer_length,
-                                            CIFSMaxBufSize);
+                                            CIFSMaxBufSize -
+                                            MAX_SMB2_CREATE_RESPONSE_SIZE -
+                                            MAX_SMB2_CLOSE_RESPONSE_SIZE);
                }
        } else if (qi.flags == PASSTHRU_SET_INFO) {
                /* Can eventually relax perm check since server enforces too */
@@ -2634,7 +2636,10 @@ smb2_query_symlink(const unsigned int xid, struct cifs_tcon *tcon,
 
        rc = SMB2_ioctl_init(tcon, &rqst[1], fid.persistent_fid,
                             fid.volatile_fid, FSCTL_GET_REPARSE_POINT,
-                            true /* is_fctl */, NULL, 0, CIFSMaxBufSize);
+                            true /* is_fctl */, NULL, 0,
+                            CIFSMaxBufSize -
+                            MAX_SMB2_CREATE_RESPONSE_SIZE -
+                            MAX_SMB2_CLOSE_RESPONSE_SIZE);
        if (rc)
                goto querty_exit;