diff options
-rw-r--r-- | libpurple/media/media.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libpurple/media/media.c b/libpurple/media/media.c index 12a14bcc49..b692cd18c8 100644 --- a/libpurple/media/media.c +++ b/libpurple/media/media.c @@ -739,7 +739,8 @@ purple_media_end(PurpleMedia *media, } /* Free the conference if no sessions left */ - if (g_hash_table_size(media->priv->sessions) == 0) { + if (media->priv->sessions != NULL && + g_hash_table_size(media->priv->sessions) == 0) { g_signal_emit(media, purple_media_signals[STATE_CHANGED], 0, PURPLE_MEDIA_STATE_END, NULL, NULL); @@ -846,10 +847,13 @@ purple_media_stream_info(PurpleMedia *media, PurpleMediaInfoType type, /* Everything that needs to be emitted has been */ } else if (session_id == NULL && participant == NULL) { /* Emit for everything in the conference */ - GList *sessions = g_hash_table_get_values( - media->priv->sessions); + GList *sessions = NULL; GList *participants = media->priv->participants; + if (media->priv->sessions != NULL) + sessions = g_hash_table_get_values( + media->priv->sessions); + /* Emit for sessions */ for (; sessions; sessions = g_list_delete_link( sessions, sessions)) { |