summaryrefslogtreecommitdiffstats
path: root/source3/smbd/reply.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r--source3/smbd/reply.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 5d47e532cf..cf30c183fa 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -2882,17 +2882,9 @@ void reply_read_and_X(connection_struct *conn, struct smb_request *req)
startpos = IVAL_TO_SMB_OFF_T(req->inbuf,smb_vwv3);
smb_maxcnt = SVAL(req->inbuf,smb_vwv5);
- if (!reply_prep_legacy(req, &inbuf, &outbuf, &length, &bufsize)) {
- reply_nterror(req, NT_STATUS_NO_MEMORY);
- END_PROFILE(SMBreadX);
- return;
- }
-
/* If it's an IPC, pass off the pipe handler. */
if (IS_IPC(conn)) {
- reply_post_legacy(
- req,
- reply_pipe_read_and_X(inbuf,outbuf,length,bufsize));
+ reply_pipe_read_and_X(req);
END_PROFILE(SMBreadX);
return;
}
@@ -2908,6 +2900,12 @@ void reply_read_and_X(connection_struct *conn, struct smb_request *req)
return;
}
+ if (!reply_prep_legacy(req, &inbuf, &outbuf, &length, &bufsize)) {
+ reply_nterror(req, NT_STATUS_NO_MEMORY);
+ END_PROFILE(SMBreadX);
+ return;
+ }
+
set_message(inbuf,outbuf,12,0,True);
if (global_client_caps & CAP_LARGE_READX) {