Fri, 02 Sep 2016 02:06:28 -0400
Fix crash if VV config device prefs are unset.
| finch/gntmedia.c | file | annotate | diff | comparison | revisions | |
| libpurple/mediamanager.c | file | annotate | diff | comparison | revisions | |
| pidgin/gtkmedia.c | file | annotate | diff | comparison | revisions |
--- a/finch/gntmedia.c Tue Sep 06 14:45:30 2016 -0500 +++ b/finch/gntmedia.c Fri Sep 02 02:06:28 2016 -0400 @@ -414,13 +414,14 @@ { #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 @@ 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(
--- a/libpurple/mediamanager.c Tue Sep 06 14:45:30 2016 -0500 +++ b/libpurple/mediamanager.c Fri Sep 02 02:06:28 2016 -0400 @@ -1229,6 +1229,7 @@ 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;
--- a/pidgin/gtkmedia.c Tue Sep 06 14:45:30 2016 -0500 +++ b/pidgin/gtkmedia.c Fri Sep 02 02:06:28 2016 -0400 @@ -1201,15 +1201,16 @@ { #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 @@ 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 @@ 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 @@ 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(