From 270a0a1b6182ef1fbff2a93af6731788cf954874 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Thu, 29 Apr 2010 12:30:05 -0400 Subject: Better handle sdap_handle memory from callers. Always just mark the sdap_handle as not connected and let later _send() functions to take care of freeing the handle before reconnecting. Introduce restart functions to avoid calling _send() functions in _done() functions error paths as this would have the same effect as directly freeing the sdap_handle and cause access to freed memory in sdap_handle_release() By freeing sdap_handle only in the connection _recv() function we guarantee it can never be done within sdap_handle_release() but only in a following event. --- src/providers/ldap/ldap_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/providers/ldap/ldap_common.c') diff --git a/src/providers/ldap/ldap_common.c b/src/providers/ldap/ldap_common.c index b5765c276..90ec7e2e7 100644 --- a/src/providers/ldap/ldap_common.c +++ b/src/providers/ldap/ldap_common.c @@ -359,7 +359,7 @@ void sdap_mark_offline(struct sdap_id_ctx *ctx) if (ctx->gsh) { /* make sure we mark the connection as gone when we go offline so that * we do not try to reuse a bad connection by mistale later */ - talloc_zfree(ctx->gsh); + ctx->gsh->connected = false; } be_mark_offline(ctx->be); -- cgit