From fed10df057a0da0468a333d5344cc8a9f35441f1 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 3 Mar 2012 20:00:51 +0000 Subject: [PATCH] [WIN32K] - Fix a memory leak in EngUnloadImage - add an ASSERT svn path=/trunk/; revision=55970 --- reactos/subsystems/win32/win32k/eng/ldevobj.c | 4 +++- reactos/subsystems/win32/win32k/eng/pdevobj.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/reactos/subsystems/win32/win32k/eng/ldevobj.c b/reactos/subsystems/win32/win32k/eng/ldevobj.c index c85c23bfe26..b78bda012e4 100644 --- a/reactos/subsystems/win32/win32k/eng/ldevobj.c +++ b/reactos/subsystems/win32/win32k/eng/ldevobj.c @@ -98,6 +98,7 @@ LDEVOBJ_vFreeLDEV(PLDEVOBJ pldev) { /* Make sure we don't have a driver loaded */ ASSERT(pldev && pldev->pGdiDriverInfo == NULL); + ASSERT(pldev->cRefs == 0); /* Free the memory */ ExFreePoolWithTag(pldev, GDITAG_LDEV); @@ -472,8 +473,9 @@ EngUnloadImage( if (pldev->pldevNext) pldev->pldevNext->pldevPrev = pldev->pldevPrev; - /* Unload the image */ + /* Unload the image and free the LDEV */ LDEVOBJ_vUnloadImage(pldev); + LDEVOBJ_vFreeLDEV(pldev); } /* Unlock loader */ diff --git a/reactos/subsystems/win32/win32k/eng/pdevobj.c b/reactos/subsystems/win32/win32k/eng/pdevobj.c index 625f510cb26..2e3518bc22d 100644 --- a/reactos/subsystems/win32/win32k/eng/pdevobj.c +++ b/reactos/subsystems/win32/win32k/eng/pdevobj.c @@ -190,7 +190,7 @@ PDEVOBJ_pdmMatchDevMode( { PGRAPHICS_DEVICE pGraphicsDevice; PDEVMODEW pdmCurrent; - INT i; + ULONG i; DWORD dwFields; pGraphicsDevice = ppdev->pGraphicsDevice;