adium.1-4: 5c274208: AIM SSL race condition fix:

evands at pidgin.im evands at pidgin.im
Sat Oct 30 15:56:16 EDT 2010


----------------------------------------------------------------------
Revision: 5c274208ba916bb2448a0bb65903bcaf7812c71b
Parent:   ccaede6e1d7fe663a7b8e12a5107f1ff62cf8c0f
Author:   evands at pidgin.im
Date:     10/30/10 15:50:38
Branch:   im.pidgin.adium.1-4
URL: http://d.pidgin.im/viewmtn/revision/info/5c274208ba916bb2448a0bb65903bcaf7812c71b

Changelog: 

AIM SSL race condition fix:
applied changes from 9484d318c55139eed1c1919a2e793af4bab3b9e5
             through 904144db35079f8cc320a0380de5c1a1df95a436

applied changes from 526b69963df47630549fb41e56520c7824587f15
             through bc9c4bb89eb6d36c548b61d8b1e6b8952b9c4c0e

Changes against parent ccaede6e1d7fe663a7b8e12a5107f1ff62cf8c0f

  patched  libpurple/protocols/oscar/flap_connection.c

-------------- next part --------------
============================================================
--- libpurple/protocols/oscar/flap_connection.c	19e7d70825751cca88fab282dd601e81835d4146
+++ libpurple/protocols/oscar/flap_connection.c	c1ba7e90208c155db31626d769058f83160fbd04
@@ -364,6 +364,12 @@ flap_connection_close(OscarData *od, Fla
 		conn->connect_data = NULL;
 	}
 
+	if (conn->gsc != NULL && conn->gsc->connect_data != NULL)
+	{
+		purple_ssl_close(conn->gsc);
+		conn->gsc = NULL;
+	}
+
 	if (conn->new_conn_data != NULL)
 	{
 		if (conn->type == SNAC_FAMILY_CHAT)
@@ -429,11 +435,16 @@ flap_connection_destroy_cb(gpointer data
 	aim_rxcallback_t userfunc;
 
 	conn = data;
+	/* Explicitly added for debugging #5927.  Don't re-order this, only
+	 * consider removing it.
+	 */
+	purple_debug_info("oscar", "Destroying FLAP connection %p\n", conn);
+
 	od = conn->od;
 	account = purple_connection_get_account(od->gc);
 
-	purple_debug_info("oscar", "Destroying oscar connection of "
-			"type 0x%04hx.  Disconnect reason is %d\n",
+	purple_debug_info("oscar", "Destroying oscar connection (%p) of "
+			"type 0x%04hx.  Disconnect reason is %d\n", conn,
 			conn->type, conn->disconnect_reason);
 
 	od->oscar_connections = g_slist_remove(od->oscar_connections, conn);
@@ -569,7 +580,7 @@ flap_connection_schedule_destroy(FlapCon
 		return;
 
 	purple_debug_info("oscar", "Scheduling destruction of FLAP "
-			"connection of type 0x%04hx\n", conn->type);
+			"connection %p of type 0x%04hx\n", conn, conn->type);
 	conn->disconnect_reason = reason;
 	g_free(conn->error_message);
 	conn->error_message = g_strdup(error_message);


More information about the Commits mailing list