summaryrefslogtreecommitdiff
path: root/source3/smbd/smb2_server.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-06-10 13:19:25 -0700
committerJeremy Allison <jra@samba.org>2010-06-10 13:19:25 -0700
commitedd8940e1864deedaf0f6484809def586ac215f2 (patch)
tree8d81416698487b45976ab3e570584104594527c5 /source3/smbd/smb2_server.c
parentb5638a05601ce8206a85c2f3625f8894ed0e0a6f (diff)
downloadsamba-edd8940e1864deedaf0f6484809def586ac215f2.tar.gz
samba-edd8940e1864deedaf0f6484809def586ac215f2.tar.bz2
samba-edd8940e1864deedaf0f6484809def586ac215f2.zip
Ensure we correctly setup req->subreq before testing for async. Stops crashes when
XX_send functions set async to stop interim replies being sent. Jeremy.
Diffstat (limited to 'source3/smbd/smb2_server.c')
-rw-r--r--source3/smbd/smb2_server.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c
index d7be0deb09..a8104a1394 100644
--- a/source3/smbd/smb2_server.c
+++ b/source3/smbd/smb2_server.c
@@ -701,6 +701,9 @@ NTSTATUS smbd_smb2_request_pending_queue(struct smbd_smb2_request *req,
return NT_STATUS_OK;
}
+ req->subreq = subreq;
+ subreq = NULL;
+
if (req->async) {
/* We're already async. */
return NT_STATUS_OK;
@@ -712,14 +715,11 @@ NTSTATUS smbd_smb2_request_pending_queue(struct smbd_smb2_request *req,
* request chain. This is not allowed.
* Cancel the outstanding request.
*/
- tevent_req_cancel(subreq);
+ tevent_req_cancel(req->subreq);
return smbd_smb2_request_error(req,
NT_STATUS_INSUFFICIENT_RESOURCES);
}
- req->subreq = subreq;
- subreq = NULL;
-
if (DEBUGLEVEL >= 10) {
dbgtext("smbd_smb2_request_pending_queue: req->current_idx = %u\n",
(unsigned int)req->current_idx );