From daae5e5de194757f7084f9b2b24353c34b961f19 Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Mon, 28 Mar 2011 20:13:11 +0300 Subject: [PATCH] xi: fix memory leak in AddExtensionClient Signed-off-by: Tiago Vignatti Reviewed-by: Peter Hutterer Reviewed-by: Nicolas Peninguy --- Xi/exevents.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index 5b207bc4b..18803c95e 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1607,14 +1607,18 @@ AddExtensionClient(WindowPtr pWin, ClientPtr client, Mask mask, int mskidx) if (!others) return BadAlloc; if (!pWin->optional->inputMasks && !MakeInputMasks(pWin)) - return BadAlloc; + goto bail; others->mask[mskidx] = mask; others->resource = FakeClientID(client->index); others->next = pWin->optional->inputMasks->inputClients; pWin->optional->inputMasks->inputClients = others; if (!AddResource(others->resource, RT_INPUTCLIENT, (pointer) pWin)) - return BadAlloc; + goto bail; return Success; + +bail: + free(others); + return BadAlloc; } static Bool