abrtd in rawhide is quite handy, it catches segfaulted apps and dumps
the core and other accessory info in a directory for the admin to see.

Here it is a fix for a segfault I found on one of my test systems.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York
>From 092766d510cff6a242bfe7d1202e14c35d15430d Mon Sep 17 00:00:00 2001
From: Simo Sorce <[email protected]>
Date: Wed, 11 Nov 2009 10:04:53 -0500
Subject: [PATCH] Fix double free case.

---
 server/providers/ldap/sdap_async.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/server/providers/ldap/sdap_async.c b/server/providers/ldap/sdap_async.c
index 9e35c64..99d8297 100644
--- a/server/providers/ldap/sdap_async.c
+++ b/server/providers/ldap/sdap_async.c
@@ -102,7 +102,9 @@ static void sdap_handle_release(struct sdap_handle *sh)
         while (sh->ops) {
             op = sh->ops;
             op->callback(op, NULL, EIO, op->data);
-            talloc_free(op);
+            /* calling the callback may result in freeing the op */
+            /* check if it is still the same or avoid freeing */
+            if (op == sh->ops) talloc_free(op);
         }
 
         ldap_unbind_ext(sh->ldap, NULL, NULL);
-- 
1.6.2.5

_______________________________________________
sssd-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to