[next] telepathy-salut: Channel managers: don' t crash on foreach_channel after disconnection

Simon McVittie smcv at kemper.freedesktop.org
Wed May 7 02:18:39 PDT 2014


Module: telepathy-salut
Branch: next
Commit: 37877bd0e9ab71ba54fa9960b4e3d8c3c5368e3a
URL:    http://cgit.freedesktop.org/telepathy/telepathy-salut/commit/?id=37877bd0e9ab71ba54fa9960b4e3d8c3c5368e3a

Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date:   Tue Apr 22 16:50:13 2014 +0100

Channel managers: don't crash on foreach_channel after disconnection

---

 src/im-manager.c    |    3 +++
 src/muc-manager.c   |    3 +++
 src/tubes-manager.c |    3 +++
 3 files changed, 9 insertions(+)

diff --git a/src/im-manager.c b/src/im-manager.c
index aab0cd5..4b01e8d 100644
--- a/src/im-manager.c
+++ b/src/im-manager.c
@@ -329,6 +329,9 @@ salut_im_manager_foreach_channel (TpChannelManager *iface,
   SalutImManagerPrivate *priv = SALUT_IM_MANAGER_GET_PRIVATE (mgr);
   struct foreach_data f;
 
+  if (priv->channels == NULL)
+    return;
+
   f.func = func;
   f.data = user_data;
 
diff --git a/src/muc-manager.c b/src/muc-manager.c
index db2b963..5448ce6 100644
--- a/src/muc-manager.c
+++ b/src/muc-manager.c
@@ -312,6 +312,9 @@ salut_muc_manager_foreach_channel (TpChannelManager *iface,
   GHashTableIter iter;
   gpointer value;
 
+  if (priv->text_channels == NULL)
+    return;
+
   g_hash_table_iter_init (&iter, priv->text_channels);
   while (g_hash_table_iter_next (&iter, NULL, &value))
     {
diff --git a/src/tubes-manager.c b/src/tubes-manager.c
index 62485f6..c99b12b 100644
--- a/src/tubes-manager.c
+++ b/src/tubes-manager.c
@@ -547,6 +547,9 @@ salut_tubes_manager_foreach_channel (TpChannelManager *manager,
   GHashTableIter iter;
   gpointer value;
 
+  if (priv->tubes == NULL)
+    return;
+
   g_hash_table_iter_init (&iter, priv->tubes);
   while (g_hash_table_iter_next (&iter, NULL, &value))
     {



More information about the telepathy-commits mailing list