modesetting: clean up leaks

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
This commit is contained in:
Maarten Lankhorst 2013-03-26 15:19:33 +01:00
parent 1754973206
commit 6b79a8791d

View File

@ -206,7 +206,7 @@ static Bool probe_hw(char *dev)
int fd = open_hw(dev);
if (fd != -1) {
close(fd);
return TRUE;
return TRUE;
}
return FALSE;
}
@ -530,15 +530,27 @@ static void msBlockHandler(BLOCKHANDLER_ARGS_DECL)
static void
FreeRec(ScrnInfoPtr pScrn)
{
modesettingPtr ms;
if (!pScrn)
return;
if (!pScrn->driverPrivate)
return;
free(pScrn->driverPrivate);
return;
ms = modesettingPTR(pScrn);
if (!ms)
return;
pScrn->driverPrivate = NULL;
if (ms->fd > 0) {
int ret;
if (ms->pEnt->location.type == BUS_PCI)
ret = drmClose(ms->fd);
else
ret = close(ms->fd);
}
free(ms->Options);
free(ms);
}
static Bool
@ -596,8 +608,8 @@ PreInit(ScrnInfoPtr pScrn, int flags)
#if XSERVER_PLATFORM_BUS
if (pEnt->location.type == BUS_PLATFORM) {
char *path = xf86_get_platform_device_attrib(pEnt->location.id.plat, ODEV_ATTRIB_PATH);
ms->fd = open_hw(path);
char *path = xf86_get_platform_device_attrib(pEnt->location.id.plat, ODEV_ATTRIB_PATH);
ms->fd = open_hw(path);
}
else
#endif