[Gossip-dev] telepathy branch crash

Jimen Ching jching at flex.com
Tue Sep 26 11:42:21 CEST 2006


On Mon, 25 Sep 2006, Martyn Russell wrote:
>Over the weekend I fixed a whole host of issues which _COULD_ cause
>crashes, but I might not have them all. Patches would be most welcomed!

I'm working in the telepathy branch.  The attached patch fixes the crash.
I'm not sure, but I think gabble is generating a signal for a contact
that has no name.  Because when I connect the second time, there are two
additional contacts in my roster that doesn't have a label.

--jc
-- 
Jimen Ching (WH6BRR)      jching at flex.com     wh6brr at uhm.ampr.org
-------------- next part --------------
? protocols/telepathy/Makefile.in
? telepathy/Makefile.in
Index: protocols/telepathy/gossip-telepathy.c
===================================================================
RCS file: /cvs/gnome/gossip/protocols/telepathy/Attic/gossip-telepathy.c,v
retrieving revision 1.1.2.2
diff -u -r1.1.2.2 gossip-telepathy.c
--- protocols/telepathy/gossip-telepathy.c	24 Sep 2006 12:49:22 -0000	1.1.2.2
+++ protocols/telepathy/gossip-telepathy.c	26 Sep 2006 09:35:27 -0000
@@ -1263,6 +1263,8 @@
 	gchar               **handle_name;
 	gboolean              tmp_new_item = FALSE;
 	GArray               *handles;
+	GError               *error = NULL;
+	gboolean              success = TRUE;
 
 	priv = GET_PRIV (telepathy);
 
@@ -1270,16 +1272,20 @@
 
 	g_array_append_val (handles, handle);
 
-	tp_conn_inspect_handles (DBUS_G_PROXY (priv->conn_obj),
-				 TP_CONN_HANDLE_TYPE_CONTACT, handles,
-				 &handle_name, NULL);
+	success = tp_conn_inspect_handles (DBUS_G_PROXY (priv->conn_obj),
+					   TP_CONN_HANDLE_TYPE_CONTACT, handles,
+					   &handle_name, &error);
+	if (!success) {
+		gossip_debug (DEBUG_DOMAIN, "InspectHandle Error: %s, %d", error->message, handle);
+		g_clear_error (&error);
+		return 0;
+	}
 
 	contact = g_hash_table_lookup (priv->contacts, *handle_name);
 
 	if (!contact) {
 		gchar      **contact_names;
 		DBusGProxy  *aliases_iface;
-		GError      *error = NULL;
 
 		gossip_debug (DEBUG_DOMAIN, "New contact:'%s'", *handle_name);
 		contact = gossip_contact_new (GOSSIP_CONTACT_TYPE_TEMPORARY,


More information about the Gossip-dev mailing list