From 905bbb9e546101ce96a0eba8707273dafb1b8fab Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Duraffort?= Date: Sun, 2 Mar 2008 13:31:19 +0100 Subject: [PATCH] Avoid a segfault when services_discovery_GetServicesNames fail. --- modules/gui/qt4/menus.cpp | 3 +++ modules/gui/wxwidgets/dialogs/playlist.cpp | 3 +++ modules/misc/lua/sd.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp index 967b992c5c..e76a793c05 100644 --- a/modules/gui/qt4/menus.cpp +++ b/modules/gui/qt4/menus.cpp @@ -428,6 +428,9 @@ QMenu *QVLCMenu::SDMenu( intf_thread_t *p_intf ) char **ppsz_longnames; char **ppsz_names = services_discovery_GetServicesNames( p_intf, &ppsz_longnames ); + if( !ppsz_names ) + return menu; + char **ppsz_name = ppsz_names, **ppsz_longname = ppsz_longnames; for( ; *ppsz_name; ppsz_name++, ppsz_longname++ ) { diff --git a/modules/gui/wxwidgets/dialogs/playlist.cpp b/modules/gui/wxwidgets/dialogs/playlist.cpp index 24ad468a19..d60724da74 100644 --- a/modules/gui/wxwidgets/dialogs/playlist.cpp +++ b/modules/gui/wxwidgets/dialogs/playlist.cpp @@ -1408,6 +1408,9 @@ wxMenu *Playlist::SDMenu() char **ppsz_longnames; char **ppsz_names = services_discovery_GetServicesNames( p_playlist, &ppsz_longnames ); + if( !ppsz_names ) + return p_sd_menu; + char **ppsz_name = ppsz_names, **ppsz_longname = ppsz_longnames; int i_number = 0; diff --git a/modules/misc/lua/sd.c b/modules/misc/lua/sd.c index 8c48aa7b45..8a98b20261 100644 --- a/modules/misc/lua/sd.c +++ b/modules/misc/lua/sd.c @@ -50,6 +50,9 @@ int vlclua_sd_get_services_names( lua_State *L ) vlc_object_t *p_this = vlclua_get_this( L ); char **ppsz_longnames; char **ppsz_names = services_discovery_GetServicesNames( p_this, &ppsz_longnames ); + if( !ppsz_names ) + return 0; + char **ppsz_longname = ppsz_longnames; char **ppsz_name = ppsz_names; lua_settop( L, 0 ); -- 2.39.2