summaryrefslogtreecommitdiffstats
path: root/source3/smbd
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2013-11-18 13:46:10 +0100
committerJeremy Allison <jra@samba.org>2014-04-11 21:41:08 +0200
commit80de72bb57520a1a14c3d3db3f31dc588d0afd64 (patch)
treed1dc934e9be5ff68dac56d12b417cbdcdd572614 /source3/smbd
parent1f767b29a89e15c4d7187cd0bc9b0c2e3152edd7 (diff)
downloadsamba-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>
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/smb2_server.c9
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;
}
/*