# HG changeset patch # User Elliott Sales de Andrade # Date 1283498669 0 # Node ID 3e7441e05be354e2ab2be9f8d1d22697795eb249 # Parent d0965a30216ae81dcd7467db6973547dd41314ca 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. diff -r d0965a30216a -r 3e7441e05be3 libpurple/network.c --- a/libpurple/network.c Wed Sep 01 21:54:19 2010 +0000 +++ b/libpurple/network.c Fri Sep 03 07:24:29 2010 +0000 @@ -1077,12 +1077,10 @@ 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); } } }