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 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; }