diff options
Diffstat (limited to 'debian/patches/use-g_strdup.patch')
-rw-r--r-- | debian/patches/use-g_strdup.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/debian/patches/use-g_strdup.patch b/debian/patches/use-g_strdup.patch new file mode 100644 index 0000000..9651da2 --- /dev/null +++ b/debian/patches/use-g_strdup.patch @@ -0,0 +1,25 @@ +Description: Use g_strdup() to pass strings to g_hash_table_insert() + Otherwise use-after-free happens soon. +Author: Dmitry Borisyuk <q1werty@i.com.ua> +--- a/fbxkb.c ++++ b/fbxkb.c +@@ -266,7 +266,6 @@ + { + GdkPixbuf *flag; + static GString *s = NULL; +- char tmp[3]; + + ENTER; + g_assert(sym != NULL && strlen(sym) > 1); +@@ -281,10 +280,7 @@ + flag = gdk_pixbuf_new_from_file_at_size(s->str, 24, 24, NULL); + if (!flag) + RET(zzflag); +- tmp[0] = sym[0]; +- tmp[1] = sym[1]; +- tmp[2] = 0; +- g_hash_table_insert(sym2pix, tmp, flag); ++ g_hash_table_insert(sym2pix, g_strdup(sym), flag); + RET(flag); + } + |