summaryrefslogtreecommitdiff
path: root/extra/gnome-shell/st-private_fix_memory_leak.patch
blob: 677a26531b85f19acded9de3155df3ca0ad4d384 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From 72f9f482d6f1bcb53ea2bd1606818af1f33a5a8c Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Thu, 05 May 2011 19:21:58 +0000
Subject: st-private: Fix memory leak

==13810== 11,360 bytes in 1 blocks are definitely lost in loss record 18,574 of 18,765
==13810==    at 0x4005447: calloc (vg_replace_malloc.c:467)
==13810==    by 0x5191882: standard_calloc (gmem.c:107)
==13810==    by 0x51920A7: g_malloc0 (gmem.c:196)
==13810==    by 0x4056201: blur_pixels (st-private.c:466)
==13810==    by 0x40573B4: _st_create_shadow_cairo_pattern (st-private.c:710)
==13810==    by 0x4070746: st_theme_node_paint (st-theme-node-drawing.c:856)
==13810==    by 0x3FEFFFFF: ???

https://bugzilla.gnome.org/show_bug.cgi?id=649497
---
diff --git a/src/st/st-private.c b/src/st/st-private.c
index d0aa89b..51798a1 100644
--- a/src/st/st-private.c
+++ b/src/st/st-private.c
@@ -746,7 +746,7 @@ _st_create_shadow_cairo_pattern (StShadow        *shadow_spec,
                               (height_out - height_in) / 2.0);
       cairo_pattern_set_matrix (dst_pattern, &shadow_matrix);
 
-      return dst_pattern;
+      goto out;
     }
 
   /* Read all the code from the cairo_pattern_set_matrix call
@@ -784,6 +784,8 @@ _st_create_shadow_cairo_pattern (StShadow        *shadow_spec,
 
   cairo_pattern_set_matrix (dst_pattern, &shadow_matrix);
 
+ out:
+  g_free (pixels_out);
   return dst_pattern;
 }
 
--
cgit v0.9