From 8ab92cd9822510f426d179a636ef34bb0ace3bb3 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Fri, 25 Mar 2011 18:56:02 +0200 Subject: [PATCH] xfree86: dri2: fix memory leak and free resources properly Signed-off-by: Tiago Vignatti Reviewed-by: Nicolas Peninguy Reviewed-by: Peter Hutterer --- hw/xfree86/dri2/dri2.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index 9ca378fed..10be59953 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -221,11 +221,16 @@ DRI2AddDrawableRef(DRI2DrawablePtr pPriv, XID id, XID dri2_id, if (ref == NULL) return BadAlloc; - if (!AddResource(dri2_id, dri2DrawableRes, pPriv)) + if (!AddResource(dri2_id, dri2DrawableRes, pPriv)) { + free(ref); return BadAlloc; + } if (!DRI2LookupDrawableRef(pPriv, id)) - if (!AddResource(id, dri2DrawableRes, pPriv)) + if (!AddResource(id, dri2DrawableRes, pPriv)) { + FreeResourceByType(dri2_id, dri2DrawableRes, TRUE); + free(ref); return BadAlloc; + } ref->id = id; ref->dri2_id = dri2_id;