From 4828feddb7e45d1fa4509717ad8f6be281cc84dd Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 20 Mar 2011 10:35:18 +0100 Subject: 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 Autobuild-Date: Sun Mar 20 11:26:57 CET 2011 on sn-devel-104 --- source3/lib/tldap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source3/lib') 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); -- cgit