CIFS: do not send invalid input buffer on QUERY_INFO requests
authorAurelien Aptel <aaptel@suse.com>
Tue, 17 Oct 2017 12:47:17 +0000 (14:47 +0200)
committerSteve French <smfrench@gmail.com>
Wed, 25 Oct 2017 17:57:57 +0000 (12:57 -0500)
commit48923d2a9d4f6ca909102061a4240b9896ff8ea2
treeeacb2e1e249fd671198497f282a3c59130bac491
parent5b454a64555055aaa5769b3ba877bd911d375d5a
CIFS: do not send invalid input buffer on QUERY_INFO requests

query_info() doesn't use the InputBuffer field of the QUERY_INFO
request, therefore according to [MS-SMB2] it must:

a) set the InputBufferOffset to 0
b) send a zero-length InputBuffer

Doing a) is trivial but b) is a bit more tricky.

The packet is allocated according to it's StructureSize, which takes
into account an extra 1 byte buffer which we don't need
here. StructureSize fields must have constant values no matter the
actual length of the whole packet so we can't just edit that constant.

Both the NetBIOS-over-TCP message length ("rfc1002 length") L and the
iovec length L' have to be updated. Since L' is computed from L we
just update L by decrementing it by one.

Signed-off-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/smb2pdu.c