diff options
author | Stefan Metzmacher <metze@samba.org> | 2013-11-18 13:46:10 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2014-04-11 21:41:08 +0200 |
commit | 80de72bb57520a1a14c3d3db3f31dc588d0afd64 (patch) | |
tree | d1dc934e9be5ff68dac56d12b417cbdcdd572614 | |
parent | 1f767b29a89e15c4d7187cd0bc9b0c2e3152edd7 (diff) | |
download | samba-80de72bb57520a1a14c3d3db3f31dc588d0afd64.tar.gz samba-80de72bb57520a1a14c3d3db3f31dc588d0afd64.tar.xz samba-80de72bb57520a1a14c3d3db3f31dc588d0afd64.zip |
s3:smb2_server: prepare smbd_smb2_request_verify_sizes() for the optimized recvfile() case
For recvfile we haven't read and may not allocated the dyn buffer.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r-- | source3/smbd/smb2_server.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index 4949fd2accb..0e42b7fdf71 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -1870,6 +1870,15 @@ NTSTATUS smbd_smb2_request_verify_sizes(struct smbd_smb2_request *req, case SMB2_OP_GETINFO: min_dyn_size = 0; break; + case SMB2_OP_WRITE: + if (req->smb1req != NULL && req->smb1req->unread_bytes > 0) { + if (req->smb1req->unread_bytes < min_dyn_size) { + return NT_STATUS_INVALID_PARAMETER; + } + + min_dyn_size = 0; + } + break; } /* |