diff options
Diffstat (limited to 'source3/smbd')
-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); } |