mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-26 13:30:06 +01:00
Xext: Fix a memory leak on GE client disconnect.
Add a call to dixRequestPrivate to inform dixFreePrivates that memory
allocated in GEClientCallback should be released when client
disconnects. Otherwise there is a leak of sizeof(GEClientInfoRec) for
every client connect/disconnect.
Also remove the explicit allocation and let GEGetClient /
dixLookupPrivate do it. This makes GEClientCallback similar to the
other extension callbacks.
Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit eb967ca36c)
This commit is contained in:
parent
b8904935bb
commit
18dcc102ac
1 changed files with 3 additions and 6 deletions
|
|
@ -168,12 +168,6 @@ GEClientCallback(CallbackListPtr *list,
|
|||
ClientPtr pClient = clientinfo->client;
|
||||
GEClientInfoPtr pGEClient = GEGetClient(pClient);
|
||||
|
||||
if (pGEClient == NULL)
|
||||
{
|
||||
pGEClient = xcalloc(1, sizeof(GEClientInfoRec));
|
||||
dixSetPrivate(&pClient->devPrivates, GEClientPrivateKey, pGEClient);
|
||||
}
|
||||
|
||||
pGEClient->major_version = 0;
|
||||
pGEClient->minor_version = 0;
|
||||
}
|
||||
|
|
@ -222,6 +216,9 @@ GEExtensionInit(void)
|
|||
{
|
||||
ExtensionEntry *extEntry;
|
||||
|
||||
if (!dixRequestPrivate(GEClientPrivateKey, sizeof(GEClientInfoRec)))
|
||||
FatalError("GEExtensionInit: GE private request failed.\n");
|
||||
|
||||
if(!AddCallback(&ClientStateCallback, GEClientCallback, 0))
|
||||
{
|
||||
FatalError("GEExtensionInit: register client callback failed.\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue