From 9e526a39e0ac6cd0db477a8a79c2067685a4024b 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 6d88151db..09ecdb2a6 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1632,14 +1632,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