Revision 0929705a119ad01036c1fc5803c535b81db622f6

markdoliner at pidgin.im markdoliner at pidgin.im
Sun Mar 25 13:10:47 EDT 2007


o   -----------------------------------------------------------------
|   Revision: 0929705a119ad01036c1fc5803c535b81db622f6
|   Ancestor: 5f2ade60742df3494a35555c993685f4436f72ec
|   Author: markdoliner at pidgin.im
|   Date: 2007-03-25T17:04:27
|   Branch: im.pidgin.pidgin
|   
|   Modified files:
|           libpurple/protocols/bonjour/bonjour.c
|   
|   ChangeLog: 
|   
|   Fix some reads of invalid memory when shutting down bonjour when there
|   are bonjour buddies in your buddy list.  We were iterating through the
|   blist and removing people as we go, which meant we were deleting
|   bnode and then trying to access bnode->next
|   
|   ============================================================
|   --- libpurple/protocols/bonjour/bonjour.c	c6c146a8bc1d5da209c8c5841402cbf7aff6fea1
|   +++ libpurple/protocols/bonjour/bonjour.c	a345c390a97ff0719faf1e1240d787d2a84a0691
|   @@ -58,7 +58,7 @@ bonjour_removeallfromlocal(PurpleConnect
|    {
|    	PurpleAccount *account = purple_connection_get_account(gc);
|    	PurpleBuddyList *blist;
|   -	PurpleBlistNode *gnode, *cnode, *bnode;
|   +	PurpleBlistNode *gnode, *cnode, *cnodenext, *bnode, *bnodenext;
|    	PurpleBuddy *buddy;
|    
|    	blist = purple_get_blist();
|   @@ -70,12 +70,14 @@ bonjour_removeallfromlocal(PurpleConnect
|    	{
|    		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
|    			continue;
|   -		for (cnode = gnode->child; cnode; cnode = cnode->next)
|   +		for (cnode = gnode->child; cnode; cnode = cnodenext)
|    		{
|   +			cnodenext = cnode->next;
|    			if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
|    				continue;
|   -			for (bnode = cnode->child; bnode; bnode = bnode->next)
|   +			for (bnode = cnode->child; bnode; bnode = bnodenext)
|    			{
|   +				bnodenext = bnode->next;
|    				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
|    					continue;
|    				buddy = (PurpleBuddy *)bnode;

To get the patch for this revision, please do this:
mtn log --last 1 --diffs --from 0929705a119ad01036c1fc5803c535b81db622f6


More information about the Commits mailing list