summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--gtk/gtkicontheme.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 909bc257a1..e41da540c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
+
+ Bug 409101 – invalid read to gtkicontheme.c insert_theme(), might cause gnome-panel crash
+
+ * gtk/gtkicontheme.c: (scan_directory):
+ Reorder the replacement of the shared base_name key, so that we
+ avoid dereferencing the string in the icon_theme->all_icon
+ hash table after freeing it from the dir->icons hash table.
+
2007-02-26 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_icon_name): Add
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 2e404e788f..3133935a21 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -2203,8 +2203,8 @@ scan_directory (GtkIconThemePrivate *icon_theme,
base_name = strip_suffix (name);
hash_suffix = GPOINTER_TO_INT (g_hash_table_lookup (dir->icons, base_name));
- g_hash_table_replace (dir->icons, base_name, GUINT_TO_POINTER (hash_suffix| suffix));
g_hash_table_insert (icon_theme->all_icons, base_name, NULL);
+ g_hash_table_replace (dir->icons, base_name, GUINT_TO_POINTER (hash_suffix| suffix));
}
g_dir_close (gdir);