pidgin: c7f2cce4: protocol is the *value*, not the *key*. ...

qulogic at pidgin.im qulogic at pidgin.im
Fri Sep 3 03:36:56 EDT 2010


----------------------------------------------------------------------
Revision: c7f2cce48dfe465889b7803de44156e7e89e41e0
Parent:   96ec18bb9a2518741092b9c5ae584ce2f3c53d97
Author:   qulogic at pidgin.im
Date:     09/03/10 03:24:29
Branch:   im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/c7f2cce48dfe465889b7803de44156e7e89e41e0

Changelog: 

protocol is the *value*, not the *key*. Thus, we really shouldn't be
attempting to remove it from the hash table. Especially because we
just removed the corresponding key, thus invalidating this pointer.

Fixes #12387.

Changes against parent 96ec18bb9a2518741092b9c5ae584ce2f3c53d97

  patched  libpurple/network.c

-------------- next part --------------
============================================================
--- libpurple/network.c	8c70d2a63b2c464b174ff8cc768e43a6bff9c4cb
+++ libpurple/network.c	040edad982c3770eb34822415ad9341218f66fa8
@@ -1077,12 +1077,10 @@ purple_network_remove_port_mapping(gint 
 
 	if (protocol) {
 		purple_network_upnp_mapping_remove(&port, protocol, NULL);
-		g_hash_table_remove(upnp_port_mappings, protocol);
 	} else {
 		protocol = g_hash_table_lookup(nat_pmp_port_mappings, &port);
 		if (protocol) {
 			purple_network_nat_pmp_mapping_remove(&port, protocol, NULL);
-			g_hash_table_remove(nat_pmp_port_mappings, protocol);
 		}
 	}
 }


More information about the Commits mailing list