From c072663f37f492544791a1b60057cf0a894b8e3f Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Fri, 25 Mar 2011 19:21:03 +0200 Subject: [PATCH] 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 Reviewed-by: Nicolas Peninguy Reviewed-by: Peter Hutterer --- fb/fbscreen.c | 4 ---- mi/micmap.c | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/fb/fbscreen.c b/fb/fbscreen.c index 2502efeff..c5b35ac85 100644 --- a/fb/fbscreen.c +++ b/fb/fbscreen.c @@ -225,11 +225,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; }