summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-03-20 10:35:18 +0100
committerVolker Lendecke <vlendec@samba.org>2011-03-20 11:26:57 +0100
commit4828feddb7e45d1fa4509717ad8f6be281cc84dd (patch)
tree74f39ed1977c222172d3bac1c5973ad262781e87
parenta8eea9e946042fa6f75ffa37059e72a447f532ed (diff)
downloadsamba-4828feddb7e45d1fa4509717ad8f6be281cc84dd.tar.gz
samba-4828feddb7e45d1fa4509717ad8f6be281cc84dd.tar.bz2
samba-4828feddb7e45d1fa4509717ad8f6be281cc84dd.zip
s3: Fix early tldap_search cancels
A callback of tldap_search_send might not interested in the rest of the results and could do a TALLOC_FREE of the search request. In this case, "subreq" is already free'ed. So we have to set it to pending before the callback is called. The TALLOC_FREE of the search request will set it to non-pending again via tldap_msg_destructor. Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Sun Mar 20 11:26:57 CET 2011 on sn-devel-104
-rw-r--r--source3/lib/tldap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/lib/tldap.c b/source3/lib/tldap.c
index db5d562eff..2f45a056df 100644
--- a/source3/lib/tldap.c
+++ b/source3/lib/tldap.c
@@ -1703,11 +1703,11 @@ static void tldap_search_done(struct tevent_req *subreq)
switch (state->result->type) {
case TLDAP_RES_SEARCH_ENTRY:
case TLDAP_RES_SEARCH_REFERENCE:
- tevent_req_notify_callback(req);
if (!tldap_msg_set_pending(subreq)) {
tevent_req_nomem(NULL, req);
return;
}
+ tevent_req_notify_callback(req);
break;
case TLDAP_RES_SEARCH_RESULT:
TALLOC_FREE(subreq);