Bug#260192: gedit: PATCH: premature free in egg-recent-view-gtk.c

Peter Moulder Peter Moulder <pmoulder@bowman.csse.monash.edu.au>, 260192@bugs.debian.org
Mon, 19 Jul 2004 19:16:00 +1000


Package: gedit
Version: 2.6.1-1
Severity: normal


In egg_recent_view_gtk_new_menu_item, uri is passed to
egg_recent_util_get_icon after already being freed.

uri is subsequently passed to, and presumably read by, gnome_icon_lookup.
This will typically result in the wrong icon being shown (e.g. no icon),
or conceivably result in segfault from reading unmapped memory.

Patch appended.

pjrm.


diff -dur gedit-2.6.1/gedit/recent-files/egg-recent-view-gtk.c gedit-2.6.1-pjrm/gedit/recent-files/egg-recent-view-gtk.c
--- gedit-2.6.1/gedit/recent-files/egg-recent-view-gtk.c	2003-01-22 10:52:27.000000000 +1100
+++ gedit-2.6.1-pjrm/gedit/recent-files/egg-recent-view-gtk.c	2004-07-19 18:33:52.000000000 +1000
@@ -207,7 +207,6 @@
 		basename = g_path_get_basename (uri);
 		escaped = egg_recent_util_escape_underlines (basename);
 		g_free (basename);
-		g_free (uri);
 
 		if (view->show_numbers) {
 			/* avoid having conflicting mnemonics */
@@ -240,6 +239,7 @@
 #else
 		pixbuf = NULL;
 #endif
+		g_free (uri);
 		image = gtk_image_new_from_pixbuf (pixbuf);
 		if (pixbuf)
 			g_object_unref (pixbuf);