[empathy] TpChat: don't crash with broken TpProperties implementations



commit 0f2e15e0a3e294e47eec19659c0a02582e2198fb
Author: Will Thompson <will thompson collabora co uk>
Date:   Tue Sep 6 15:52:34 2011 +0100

    TpChat: don't crash with broken TpProperties implementations
    
    I forgot to take the Telepathy.Properties interface out of Gabble when I
    removed Telepathy.Properties support from it. So Empathy called
    ListProperties() on it anyway: fine, you might think, except the
    callback set priv->had_properties_list to TRUE even if the method
    returned an error. empathy_tp_chat_set_property() and
    empathy_tp_chat_get_property() assume that if priv->had_properties_list is
    TRUE, priv->properties is not NULL.
    
    While I hope that we can delete this code entirely pretty soon, getting
    this crash fix in seems like a good idea.
    
    Reviewed-by: Jonny Lamb <jonny lamb collabora co uk>

 libempathy/empathy-tp-chat.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index 2700356..9eaff95 100644
--- a/libempathy/empathy-tp-chat.c
+++ b/libempathy/empathy-tp-chat.c
@@ -686,13 +686,13 @@ tp_chat_list_properties_cb (TpProxy         *proxy,
 	GArray            *ids;
 	guint              i;
 
-	self->priv->had_properties_list = TRUE;
-
 	if (error) {
 		DEBUG ("Error listing properties: %s", error->message);
 		return;
 	}
 
+	self->priv->had_properties_list = TRUE;
+
 	ids = g_array_sized_new (FALSE, FALSE, sizeof (guint), properties->len);
 	self->priv->properties = g_ptr_array_sized_new (properties->len);
 	for (i = 0; i < properties->len; i++) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]