summaryrefslogtreecommitdiff
path: root/source3/smbd/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/process.c')
-rw-r--r--source3/smbd/process.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 3547bfcc3a..1701cd33da 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1823,6 +1823,25 @@ void chain_reply(struct smb_request *req)
#else
/*
+ * How many bytes have we already accumulated up to the current wct field
+ * offset?
+ */
+
+size_t req_wct_ofs(struct smb_request *req)
+{
+ size_t buf_size;
+
+ if (req->chain_outbuf == NULL) {
+ return smb_wct - 4;
+ }
+ buf_size = talloc_get_size(req->chain_outbuf);
+ if ((buf_size % 4) != 0) {
+ buf_size += (4 - (buf_size % 4));
+ }
+ return buf_size - 4;
+}
+
+/*
* Hack around reply_nterror & friends not being aware of chained requests,
* generating illegal (i.e. wct==0) chain replies.
*/