summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--telepathy-glib/account.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 0de15a487..803d2a354 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,10 @@
telepathy-glib 0.21.3 (UNRELEASED)
==================================
-...
+Fixes:
+
+• Don't crash if the AccountManager returns an incorrect type for the
+ Avatar (fd.o #69849, Simon)
telepathy-glib 0.21.2 (2013-09-24)
==================================
diff --git a/telepathy-glib/account.c b/telepathy-glib/account.c
index a342fd41d..24dbd001a 100644
--- a/telepathy-glib/account.c
+++ b/telepathy-glib/account.c
@@ -3559,6 +3559,12 @@ _tp_account_got_avatar_cb (TpProxy *proxy,
DEBUG ("Failed to get avatar: %s", error->message);
g_simple_async_result_set_from_error (result, error);
}
+ else if (!G_VALUE_HOLDS (out_Value, TP_STRUCT_TYPE_AVATAR))
+ {
+ DEBUG ("Avatar had wrong type: %s", G_VALUE_TYPE_NAME (out_Value));
+ g_simple_async_result_set_error (result, TP_ERROR, TP_ERROR_CONFUSED,
+ "Incorrect type for Avatar property");
+ }
else
{
avatar = g_value_get_boxed (out_Value);