summaryrefslogtreecommitdiff
path: root/source4/smb_server/nttrans.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smb_server/nttrans.c')
-rw-r--r--source4/smb_server/nttrans.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/source4/smb_server/nttrans.c b/source4/smb_server/nttrans.c
index bd8c49c594..683e9e3386 100644
--- a/source4/smb_server/nttrans.c
+++ b/source4/smb_server/nttrans.c
@@ -198,8 +198,6 @@ void reply_nttrans(struct smbsrv_request *req)
params = trans.out.params.data;
data = trans.out.data.data;
- req->control_flags |= REQ_CONTROL_PROTECTED;
-
/* we need to divide up the reply into chunks that fit into
the negotiated buffer size */
do {
@@ -254,9 +252,9 @@ void reply_nttrans(struct smbsrv_request *req)
params += this_param;
data += this_data;
- /* if this is the last chunk then the request can be destroyed */
- if (params_left == 0 && data_left == 0) {
- req->control_flags &= ~REQ_CONTROL_PROTECTED;
+ /* don't destroy unless this is the last segment */
+ if (params_left != 0 || data_left != 0) {
+ talloc_increase_ref_count(req);
}
req_send_reply(req);