/pidgin/main: bd088b2700cd: Fix crash if VV config device prefs ...
Elliott Sales de Andrade <[email protected]> Fri, 09 Sep 2016 14:57:26 -0400
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: bd088b2700cd7104d130f5f2463b55efc8935019 Author: Elliott Sales de Andrade <[email protected]> Date: 2016-09-02 02:06 -0400 Branch: default URL: https://hg.pidgin.im/pidgin/main/rev/bd088b2700cd Description: Fix crash if VV config device prefs are unset. diffstat: finch/gntmedia.c | 10 ++++++---- libpurple/mediamanager.c | 1 + pidgin/gtkmedia.c | 20 ++++++++++++-------- 3 files changed, 19 insertions(+), 12 deletions(-) diffs (97 lines): diff --git a/finch/gntmedia.c b/finch/gntmedia.c --- a/finch/gntmedia.c +++ b/finch/gntmedia.c @@ -414,13 +414,14 @@ void finch_media_manager_init(void) { #ifdef USE_VV PurpleMediaManager *manager = purple_media_manager_get(); - PurpleMediaElementInfo *audio_src; - PurpleMediaElementInfo *audio_sink; + PurpleMediaElementInfo *audio_src = NULL; + PurpleMediaElementInfo *audio_sink = NULL; const char *pref; pref = purple_prefs_get_string( FINCH_PREFS_ROOT "/vvconfig/audio/src/device"); - audio_src = purple_media_manager_get_element_info(manager, pref); + if (pref) + audio_src = purple_media_manager_get_element_info(manager, pref); if (!audio_src) { pref = "autoaudiosrc"; purple_prefs_set_string( @@ -431,7 +432,8 @@ void finch_media_manager_init(void) pref = purple_prefs_get_string( FINCH_PREFS_ROOT "/vvconfig/audio/sink/device"); - audio_sink = purple_media_manager_get_element_info(manager, pref); + if (pref) + audio_sink = purple_media_manager_get_element_info(manager, pref); if (!audio_sink) { pref = "autoaudiosink"; purple_prefs_set_string( diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c --- a/libpurple/mediamanager.c +++ b/libpurple/mediamanager.c @@ -1229,6 +1229,7 @@ purple_media_manager_get_element_info(Pu GList *iter; g_return_val_if_fail(PURPLE_IS_MEDIA_MANAGER(manager), NULL); + g_return_val_if_fail(id != NULL, NULL); iter = manager->priv->elements; diff --git a/pidgin/gtkmedia.c b/pidgin/gtkmedia.c --- a/pidgin/gtkmedia.c +++ b/pidgin/gtkmedia.c @@ -1201,15 +1201,16 @@ pidgin_medias_init(void) { #ifdef USE_VV PurpleMediaManager *manager = purple_media_manager_get(); - PurpleMediaElementInfo *video_src; - PurpleMediaElementInfo *video_sink; - PurpleMediaElementInfo *audio_src; - PurpleMediaElementInfo *audio_sink; + PurpleMediaElementInfo *video_src = NULL; + PurpleMediaElementInfo *video_sink = NULL; + PurpleMediaElementInfo *audio_src = NULL; + PurpleMediaElementInfo *audio_sink = NULL; const char *pref; pref = purple_prefs_get_string( PIDGIN_PREFS_ROOT "/vvconfig/video/src/device"); - video_src = purple_media_manager_get_element_info(manager, pref); + if (pref) + video_src = purple_media_manager_get_element_info(manager, pref); if (!video_src) { pref = "autovideosrc"; purple_prefs_set_string( @@ -1220,7 +1221,8 @@ pidgin_medias_init(void) pref = purple_prefs_get_string( PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device"); - video_sink = purple_media_manager_get_element_info(manager, pref); + if (pref) + video_sink = purple_media_manager_get_element_info(manager, pref); if (!video_sink) { pref = "autovideosink"; purple_prefs_set_string( @@ -1231,7 +1233,8 @@ pidgin_medias_init(void) pref = purple_prefs_get_string( PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device"); - audio_src = purple_media_manager_get_element_info(manager, pref); + if (pref) + audio_src = purple_media_manager_get_element_info(manager, pref); if (!audio_src) { pref = "autoaudiosrc"; purple_prefs_set_string( @@ -1242,7 +1245,8 @@ pidgin_medias_init(void) pref = purple_prefs_get_string( PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device"); - audio_sink = purple_media_manager_get_element_info(manager, pref); + if (pref) + audio_sink = purple_media_manager_get_element_info(manager, pref); if (!audio_sink) { pref = "autoaudiosink"; purple_prefs_set_string( _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits