From 9701b58c4efb6375843a7bb67c8a3cdfac1d3f2a Mon Sep 17 00:00:00 2001 From: Victor Toso Date: Thu, 29 Sep 2016 18:45:42 +0200 Subject: [PATCH] icon-theme: Fix leaks on error 13 bytes in 1 blocks are definitely lost in loss record 766 of 16,875 at 0x4C2DB9D: malloc (vg_replace_malloc.c:299) by 0xA9D0247: vasprintf (in /usr/lib64/libc-2.24.so) by 0xA2453FC: g_vasprintf (gprintf.c:316) by 0xA2152F7: g_strdup_vprintf (gstrfuncs.c:514) by 0xA21539C: g_strdup_printf (gstrfuncs.c:540) by 0x678F25C: gdk_rgba_to_string (gdkrgba.c:360) by 0x5FAE00D: rgba_to_string_noalpha (gtkicontheme.c:4322) by 0x5FAE6F2: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4492) by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622) by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711) by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118) by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170) 14 bytes in 1 blocks are definitely lost in loss record 801 of 16,875 at 0x4C2DB9D: malloc (vg_replace_malloc.c:299) by 0xA9D0247: vasprintf (in /usr/lib64/libc-2.24.so) by 0xA2453FC: g_vasprintf (gprintf.c:316) by 0xA2152F7: g_strdup_vprintf (gstrfuncs.c:514) by 0xA21539C: g_strdup_printf (gstrfuncs.c:540) by 0x678F25C: gdk_rgba_to_string (gdkrgba.c:360) by 0x5FAE00D: rgba_to_string_noalpha (gtkicontheme.c:4322) by 0x5FAE68E: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4482) by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622) by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711) by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118) by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170) 15 bytes in 1 blocks are definitely lost in loss record 838 of 16,875 at 0x4C2DB9D: malloc (vg_replace_malloc.c:299) by 0xA9D0247: vasprintf (in /usr/lib64/libc-2.24.so) by 0xA2453FC: g_vasprintf (gprintf.c:316) by 0xA2152F7: g_strdup_vprintf (gstrfuncs.c:514) by 0xA21539C: g_strdup_printf (gstrfuncs.c:540) by 0x678F25C: gdk_rgba_to_string (gdkrgba.c:360) by 0x5FAE00D: rgba_to_string_noalpha (gtkicontheme.c:4322) by 0x5FAE6C3: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4487) by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622) by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711) by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118) by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170) 16,384 bytes in 1 blocks are definitely lost in loss record 16,847 of 16,875 at 0x4C2DADE: malloc (vg_replace_malloc.c:298) by 0x4C2FC91: realloc (vg_replace_malloc.c:785) by 0xA1F89FA: g_realloc (gmem.c:159) by 0xA1BAD2E: g_array_maybe_expand (garray.c:779) by 0xA1BA566: g_array_set_size (garray.c:555) by 0xA1BBCB8: g_byte_array_set_size (garray.c:1752) by 0x8D1CC48: g_file_load_contents (gfile.c:6766) by 0x5FAE767: gtk_icon_info_load_symbolic_svg (gtkicontheme.c:4501) by 0x5FAED4F: gtk_icon_info_load_symbolic_internal (gtkicontheme.c:4622) by 0x5FAEEE8: gtk_icon_info_load_symbolic (gtkicontheme.c:4711) by 0x5F00246: gtk_css_image_recolor_load (gtkcssimagerecolor.c:118) by 0x5F003E4: gtk_css_image_recolor_compute (gtkcssimagerecolor.c:170) https://bugzilla.gnome.org/show_bug.cgi?id=772215 --- gtk/gtkicontheme.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 63b6f238a7..5a416b76d0 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -4505,6 +4505,11 @@ gtk_icon_info_load_symbolic_svg (GtkIconInfo *icon_info, { g_propagate_error (error, icon_info->load_error); icon_info->load_error = NULL; + g_free (css_fg); + g_free (css_warning); + g_free (css_error); + g_free (css_success); + g_free (file_data); return NULL; } @@ -4517,7 +4522,14 @@ gtk_icon_info_load_symbolic_svg (GtkIconInfo *icon_info, g_object_unref (stream); if (!pixbuf) - return NULL; + { + g_free (css_fg); + g_free (css_warning); + g_free (css_error); + g_free (css_success); + g_free (file_data); + return NULL; + } icon_info->symbolic_width = gdk_pixbuf_get_width (pixbuf); icon_info->symbolic_height = gdk_pixbuf_get_height (pixbuf);