From dce2f10cf7bef9929cefadb5088d5b66df43a865 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 fa518f64a1..9e6ecf50f6 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 41e03006e5..7448ef8fda 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; }