[asterisk-commits] mmichelson: branch mmichelson/ao2_containers r140401 - /team/mmichelson/ao2_c...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Aug 28 15:07:47 CDT 2008


Author: mmichelson
Date: Thu Aug 28 15:07:46 2008
New Revision: 140401

URL: http://svn.digium.com/view/asterisk?view=rev&rev=140401
Log:
Fixed a bug in hashtable_iterator_next. It was
always returning NULL.

Now when I start Asterisk I get terrible, thunderous,
earth-shaking errors. Okay, it's a double free happening
somewhere, but I still need to track it down.


Modified:
    team/mmichelson/ao2_containers/main/astobj2.c
    team/mmichelson/ao2_containers/main/astobj2_hashtable.c

Modified: team/mmichelson/ao2_containers/main/astobj2.c
URL: http://svn.digium.com/view/asterisk/team/mmichelson/ao2_containers/main/astobj2.c?view=diff&rev=140401&r1=140400&r2=140401
==============================================================================
--- team/mmichelson/ao2_containers/main/astobj2.c (original)
+++ team/mmichelson/ao2_containers/main/astobj2.c Thu Aug 28 15:07:46 2008
@@ -521,8 +521,13 @@
 	struct astobj2 *ret = NULL;
 	void *user_data = NULL;
 
-	if (!(a->flags & F_AO2I_DONTLOCK))
+	if (INTERNAL_OBJ(a->c) == NULL) {
+		return NULL;
+	}
+
+	if (!(a->flags & F_AO2I_DONTLOCK)) {
 		ao2_lock(a->c);
+	}
 
 	ret = a->c->impl->iterator_next(a);
 	

Modified: team/mmichelson/ao2_containers/main/astobj2_hashtable.c
URL: http://svn.digium.com/view/asterisk/team/mmichelson/ao2_containers/main/astobj2_hashtable.c?view=diff&rev=140401&r1=140400&r2=140401
==============================================================================
--- team/mmichelson/ao2_containers/main/astobj2_hashtable.c (original)
+++ team/mmichelson/ao2_containers/main/astobj2_hashtable.c Thu Aug 28 15:07:46 2008
@@ -224,6 +224,7 @@
 		a->version = p->version;
 		a->obj = p;
 		a->c_version = a->c->version;
+		ret = p->astobj;
 	}
 
 	return ret;




More information about the asterisk-commits mailing list