summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/process.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 487358d701..0647b99ba0 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1617,6 +1617,13 @@ void chain_reply(struct smb_request *req)
}
req->outbuf = NULL;
} else {
+ /*
+ * Update smb headers where subsequent chained commands
+ * may have updated them.
+ */
+ SCVAL(req->chain_outbuf, smb_tid, CVAL(req->outbuf, smb_tid));
+ SCVAL(req->chain_outbuf, smb_uid, CVAL(req->outbuf, smb_uid));
+
if (!smb_splice_chain(&req->chain_outbuf,
CVAL(req->outbuf, smb_com),
CVAL(req->outbuf, smb_wct),