Signed-off-by: Tiago Vignatti <[email protected]>
Reviewed-by: Nicolas Peninguy <[email protected]>
---
 hw/xfree86/dri2/dri2.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 9ca378f..10be599 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; 
-- 
1.7.0.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to