diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-06-24 08:54:02 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-06-24 11:25:36 +0200 |
commit | 2bb325ad913c1cff88faab55102cef75d14c04a6 (patch) | |
tree | 14497dc33cf69b7e85d3cfb5aa08247f98af5138 | |
parent | 511cb20d40221cac577a5910420b59f17b915b00 (diff) | |
download | samba-2bb325ad913c1cff88faab55102cef75d14c04a6.tar.gz samba-2bb325ad913c1cff88faab55102cef75d14c04a6.tar.bz2 samba-2bb325ad913c1cff88faab55102cef75d14c04a6.zip |
s3:smb2_ioctl/FSCTL_PIPE_TRANSCEIVE: generate STATUS_BUFFER_OVERFLOW if needed (bug #8260)
This should fix DCERPC responses with fragments larger than 1024 bytes.
metze
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Jun 24 11:25:36 CEST 2011 on sn-devel-104
-rw-r--r-- | source3/smbd/smb2_ioctl.c | 5 | ||||
-rw-r--r-- | source3/smbd/smb2_read.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/source3/smbd/smb2_ioctl.c b/source3/smbd/smb2_ioctl.c index bce02b0a3a..abb1905ba0 100644 --- a/source3/smbd/smb2_ioctl.c +++ b/source3/smbd/smb2_ioctl.c @@ -590,6 +590,11 @@ static void smbd_smb2_ioctl_pipe_read_done(struct tevent_req *subreq) state->out_output.length = nread; + if (is_data_outstanding) { + tevent_req_nterror(req, STATUS_BUFFER_OVERFLOW); + return; + } + tevent_req_done(req); } diff --git a/source3/smbd/smb2_read.c b/source3/smbd/smb2_read.c index 6e686ef273..996f8d46ae 100644 --- a/source3/smbd/smb2_read.c +++ b/source3/smbd/smb2_read.c @@ -575,6 +575,11 @@ static void smbd_smb2_read_pipe_done(struct tevent_req *subreq) state->out_data.length = nread; state->out_remaining = 0; + /* + * TODO: add STATUS_BUFFER_OVERFLOW handling, once we also + * handle it in SMB1 pipe_read_andx_done(). + */ + tevent_req_done(req); } |