aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-tp-chat.c
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2011-09-06 22:52:34 +0800
committerWill Thompson <will.thompson@collabora.co.uk>2011-09-06 22:59:04 +0800
commit0f2e15e0a3e294e47eec19659c0a02582e2198fb (patch)
tree814ea3837b865906f27bb15f5a54444b5dcd762b /libempathy/empathy-tp-chat.c
parentb77af8e37dff739e55a69f85f89fc3031620e1e3 (diff)
downloadgsoc2013-empathy-0f2e15e0a3e294e47eec19659c0a02582e2198fb.tar
gsoc2013-empathy-0f2e15e0a3e294e47eec19659c0a02582e2198fb.tar.gz
gsoc2013-empathy-0f2e15e0a3e294e47eec19659c0a02582e2198fb.tar.bz2
gsoc2013-empathy-0f2e15e0a3e294e47eec19659c0a02582e2198fb.tar.lz
gsoc2013-empathy-0f2e15e0a3e294e47eec19659c0a02582e2198fb.tar.xz
gsoc2013-empathy-0f2e15e0a3e294e47eec19659c0a02582e2198fb.tar.zst
gsoc2013-empathy-0f2e15e0a3e294e47eec19659c0a02582e2198fb.zip
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>
Diffstat (limited to 'libempathy/empathy-tp-chat.c')
-rw-r--r--libempathy/empathy-tp-chat.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libempathy/empathy-tp-chat.c b/libempathy/empathy-tp-chat.c
index 27003561e..9eaff9592 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++) {