diff src/protocols/oscar/peer.c @ 13664:4132d997ccec

[gaim-migrate @ 16066] Fix Coverity CID 45: Check to make sure a channel 2 ICBM actually contains an IP address TLV before attempting to use it. This avoids a crash when the server sends us an abnormal channel 2 ICBM. I'm not sure if that ever happens. Fix Coverity CID 204: Don't attempt to send data over a FLAP BOS connection that doesn't exist. This should never happen because the account should get disconnected first. Fix Coverity CID 205: Don't check that a variable 'od' which we know is valid is not equal to NULL in aim_search_address() in family_userlookup.c Fix Coverity CID 206: Don't check that the variable 'od' which we know is valid is not equal to NULL in aim_chat_join() in family_oservice.c Fix Coverity CID 207: I neglected to remove a "return;" line from aim_admin_setnick() in family_admin.c which caused setting your AIM screen name formatting to not work. Fix Coverity CID 208: Remove a duplicate call to gaim_connection_get_account() in peer_connection_propose() in peer.c. Fix Coverity CID 209: Remove the unused variable "username" from incomingim_chan2() in oscar.c. Fix Coverity CID 210: Remove the unused variable "account" from peer_connection_listen_cb() in peer.c. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 20 Apr 2006 04:45:06 +0000
parents 6c34fbb75bbd
children ee026e289bc4
line wrap: on
line diff
--- a/src/protocols/oscar/peer.c	Wed Apr 19 05:50:50 2006 +0000
+++ b/src/protocols/oscar/peer.c	Thu Apr 20 04:45:06 2006 +0000
@@ -516,14 +516,12 @@
 	PeerConnection *conn;
 	OscarData *od;
 	GaimConnection *gc;
-	GaimAccount *account;
 	struct sockaddr addr;
 	socklen_t addrlen = sizeof(addr);
 
 	conn = data;
 	od = conn->od;
 	gc = od->gc;
-	account = gaim_connection_get_account(gc);
 
 	gaim_debug_info("oscar", "Accepting connection on listener socket.\n");
 
@@ -595,6 +593,13 @@
 
 	/* Send the "please connect to me!" ICBM */
 	bos_conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM);
+	if (bos_conn == NULL)
+	{
+		/* Not good */
+		peer_connection_trynext(conn);
+		return;
+	}
+
 	listener_ip = gaim_network_get_my_ip(bos_conn->fd);
 	listener_port = gaim_network_get_port_from_fd(conn->listenerfd);
 	if (conn->type == OSCAR_CAPABILITY_DIRECTIM)
@@ -774,9 +779,6 @@
 peer_connection_propose(OscarData *od, OscarCapability type, const char *sn)
 {
 	PeerConnection *conn;
-	GaimAccount *account;
-
-	account = gaim_connection_get_account(od->gc);
 
 	if (type == OSCAR_CAPABILITY_DIRECTIM)
 	{
@@ -785,6 +787,7 @@
 		{
 			if (conn->ready)
 			{
+				GaimAccount *account;
 				GaimConversation *conv;
 
 				gaim_debug_info("oscar", "Already have a direct IM "