diff options
author | marcus <marcus@FreeBSD.org> | 2007-03-22 06:16:18 +0800 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2007-03-22 06:16:18 +0800 |
commit | 2f4d0e87cc9af47a4c56277f2c710e771d5864e6 (patch) | |
tree | 3244454bb80a3cfbeedddb804934057a30f83801 /x11/libgnomekbd | |
parent | c460dbe283ff927191f6c98602f17f6005b2f8ae (diff) | |
download | freebsd-ports-gnome-2f4d0e87cc9af47a4c56277f2c710e771d5864e6.tar.gz freebsd-ports-gnome-2f4d0e87cc9af47a4c56277f2c710e771d5864e6.tar.zst freebsd-ports-gnome-2f4d0e87cc9af47a4c56277f2c710e771d5864e6.zip |
Fix a bug where static memory was being free'd as a key to a hash table.
This resulted in a crash when more than one keyboard layout was configured.
See http://bugzilla.gnome.org/show_bug.cgi?id=421252 for more details.
Reported by: Ivan Georgiev <ivan@kytex.bg>
Diffstat (limited to 'x11/libgnomekbd')
-rw-r--r-- | x11/libgnomekbd/Makefile | 1 | ||||
-rw-r--r-- | x11/libgnomekbd/files/patch-libgnomekbd_gkbd-indicator.c | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/x11/libgnomekbd/Makefile b/x11/libgnomekbd/Makefile index db661e438d67..74ffc31b1314 100644 --- a/x11/libgnomekbd/Makefile +++ b/x11/libgnomekbd/Makefile @@ -8,6 +8,7 @@ PORTNAME= libgnomekbd PORTVERSION= 2.18.0 +PORTREVISION= 1 CATEGORIES= x11 gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 diff --git a/x11/libgnomekbd/files/patch-libgnomekbd_gkbd-indicator.c b/x11/libgnomekbd/files/patch-libgnomekbd_gkbd-indicator.c new file mode 100644 index 000000000000..5c2d4918c2c8 --- /dev/null +++ b/x11/libgnomekbd/files/patch-libgnomekbd_gkbd-indicator.c @@ -0,0 +1,18 @@ +--- libgnomekbd/gkbd-indicator.c.orig Wed Mar 21 17:11:21 2007 ++++ libgnomekbd/gkbd-indicator.c Wed Mar 21 17:11:23 2007 +@@ -265,11 +265,14 @@ gkbd_indicator_prepare_drawing (GkbdIndi + layouts_variants, + group); + char *variant_name; ++ char *layout_name_ptr; + if (!gkbd_keyboard_config_split_items +- (full_layout_name, &layout_name, ++ (full_layout_name, &layout_name_ptr, + &variant_name)) + /* just in case */ + layout_name = g_strdup (full_layout_name); ++ else ++ layout_name = g_strdup (layout_name_ptr); + + if (globals.short_group_names != NULL) { + char *short_group_name = |