summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Vignatti <tiago.vignatti@nokia.com>2011-03-25 19:21:03 +0200
committerTiago Vignatti <tiago.vignatti@nokia.com>2011-04-04 15:41:13 +0300
commitdce2f10cf7bef9929cefadb5088d5b66df43a865 (patch)
tree651a86f0ee5086810d8f3a9e710de0342f7a1a49
parent8ab92cd9822510f426d179a636ef34bb0ace3bb3 (diff)
mi: fix memory leak in miInitVisuals
Free the pointers inside miInitVisuals, so the callers of this function (fboverlay.c and fbscreen.c) don't need to worry with deallocation in the case of failure. Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Nicolas Peninguy <nico@lostgeeks.org> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--fb/fbscreen.c4
-rw-r--r--mi/micmap.c2
2 files changed, 2 insertions, 4 deletions
diff --git a/fb/fbscreen.c b/fb/fbscreen.c
index fa518f64a..9e6ecf50f 100644
--- a/fb/fbscreen.c
+++ b/fb/fbscreen.c
@@ -221,11 +221,7 @@ fbFinishScreenInit(ScreenPtr pScreen,
rootdepth = 0;
if (!fbInitVisuals (&visuals, &depths, &nvisuals, &ndepths, &rootdepth,
&defaultVisual,((unsigned long)1<<(imagebpp-1)), 8))
- {
- free(visuals);
- free(depths);
return FALSE;
- }
if (! miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width,
rootdepth, ndepths, depths,
defaultVisual, nvisuals, visuals))
diff --git a/mi/micmap.c b/mi/micmap.c
index 41e03006e..7448ef8fd 100644
--- a/mi/micmap.c
+++ b/mi/micmap.c
@@ -564,6 +564,8 @@ miInitVisuals(VisualPtr *visualp, DepthPtr *depthp, int *nvisualp,
{
vid = malloc(nvtype * sizeof (VisualID));
if (!vid) {
+ free(depth);
+ free(visual);
free(preferredCVCs);
return FALSE;
}