summaryrefslogtreecommitdiff
path: root/source3/smbd/smb2_ioctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/smb2_ioctl.c')
-rw-r--r--source3/smbd/smb2_ioctl.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/source3/smbd/smb2_ioctl.c b/source3/smbd/smb2_ioctl.c
index 8840167508..cd303eddde 100644
--- a/source3/smbd/smb2_ioctl.c
+++ b/source3/smbd/smb2_ioctl.c
@@ -656,18 +656,24 @@ static void smbd_smb2_ioctl_pipe_read_done(struct tevent_req *subreq)
struct smbd_smb2_ioctl_state *state = tevent_req_data(req,
struct smbd_smb2_ioctl_state);
NTSTATUS status;
+ NTSTATUS old;
ssize_t nread = -1;
bool is_data_outstanding = false;
status = np_read_recv(subreq, &nread, &is_data_outstanding);
+ TALLOC_FREE(subreq);
+
+ old = status;
+ status = nt_status_np_pipe(old);
DEBUG(10,("smbd_smb2_ioctl_pipe_read_done: np_read_recv nread = %d "
- "is_data_outstanding = %d, status = %s\n",
+ "is_data_outstanding = %d, status = %s%s%s\n",
(int)nread,
(int)is_data_outstanding,
- nt_errstr(status) ));
+ nt_errstr(old),
+ NT_STATUS_EQUAL(old, status)?"":" => ",
+ NT_STATUS_EQUAL(old, status)?"":nt_errstr(status)));
- TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return;