# HG changeset patch # User Sadrul Habib Chowdhury # Date 1254159716 0 # Node ID 5ac71d38bd5ceacf10b9e13983ee6b197574d989 # Parent 70feb3f9ae12d9e692cf4d12bd0c5b5d1e0bb484 Fix a possible null-dereference and/or memory leak. Yes, another diagnosis by clang-analyzer. diff -r 70feb3f9ae12 -r 5ac71d38bd5c libpurple/protocols/yahoo/libymsg.c --- a/libpurple/protocols/yahoo/libymsg.c Mon Sep 28 17:39:33 2009 +0000 +++ b/libpurple/protocols/yahoo/libymsg.c Mon Sep 28 17:41:56 2009 +0000 @@ -983,7 +983,10 @@ if( (pkt_type == YAHOO_PKT_TYPE_P2P) && (val_11 != yd->session_id) ) { purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im ? im->from : "(im was null)"); /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ - g_hash_table_remove(yd->peers, im->from); + if (im) { + g_hash_table_remove(yd->peers, im->from); + g_free(im); + } return; }