diff options
author | gpoirier <gpoirier@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-04-09 13:52:45 +0000 |
---|---|---|
committer | gpoirier <gpoirier@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-04-09 13:52:45 +0000 |
commit | c93f360e3d357d2447e34a97048213c149bdc42b (patch) | |
tree | 22248557b50c36074e8ca9f175786ecb55f5831c /Gui/mplayer/gtk | |
parent | b2360d8174d90829fdb647438606dc0388953806 (diff) | |
download | mpv-c93f360e3d357d2447e34a97048213c149bdc42b.tar.bz2 mpv-c93f360e3d357d2447e34a97048213c149bdc42b.tar.xz |
fix segfault in the skin browser when sbSelectedSkin gets dereferenced before setting, when no skin is selected in the skin list upon opening the browser,
and "Cancel" or "OK" buttons get clicked.
Noticed when runnig freshly compiled gmplayer on a system where the skins were still under the old location.
based on a combined patch by Stanislav Maslovski <stanislav POIS maslovski AH gmail POIS com>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18067 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui/mplayer/gtk')
-rw-r--r-- | Gui/mplayer/gtk/sb.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Gui/mplayer/gtk/sb.c b/Gui/mplayer/gtk/sb.c index 2293239504..eb00f55d67 100644 --- a/Gui/mplayer/gtk/sb.c +++ b/Gui/mplayer/gtk/sb.c @@ -24,8 +24,8 @@ char * sbMPlayerDirInHome_obsolete=NULL; char * sbMPlayerPrefixDir=NULL; char * sbMPlayerPrefixDir_obsolete=NULL; -char * gtkOldSkin; -static char * prev; +char * gtkOldSkin=NULL; +static char * prev=NULL; GtkWidget * SkinBrowser = NULL; @@ -77,9 +77,11 @@ int gtkFillSkinList( gchar * mdir ) static void prButton( GtkObject * object,gpointer user_data ) { - switch ( (int)user_data ) - { - case 0: // cancel + if ( sbSelectedSkin ) + { + switch ( (int)user_data ) + { + case 0: // cancel if ( strcmp( sbSelectedSkin,gtkOldSkin ) ) ChangeSkin( gtkOldSkin ); break; case 1: // ok @@ -88,6 +90,7 @@ static void prButton( GtkObject * object,gpointer user_data ) skinName=strdup( sbSelectedSkin ); break; } + } HideSkinBrowser(); } |