From 0ba77df60d89bc943ce6bd9dc105667138396d76 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 19 Feb 2017 10:31:37 +0000 Subject: [PATCH] [LOCALMON] - Avoid a potential double free in InitializePrintMonitor2. CID 1401299 - Avoid a use after free in LocalmonClosePort. CID 1401298 svn path=/trunk/; revision=73835 --- reactos/win32ss/printing/monitors/localmon/main.c | 1 + reactos/win32ss/printing/monitors/localmon/ports.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/reactos/win32ss/printing/monitors/localmon/main.c b/reactos/win32ss/printing/monitors/localmon/main.c index 336a03a1740..66e127f8030 100644 --- a/reactos/win32ss/printing/monitors/localmon/main.c +++ b/reactos/win32ss/printing/monitors/localmon/main.c @@ -223,6 +223,7 @@ InitializePrintMonitor2(PMONITORINIT pMonitorInit, PHANDLE phMonitor) if (!cchPortName || _IsNEPort(pPort->pwszPortName)) { DllFreeSplMem(pPort); + pPort = NULL; continue; } diff --git a/reactos/win32ss/printing/monitors/localmon/ports.c b/reactos/win32ss/printing/monitors/localmon/ports.c index a56b5fd69bd..ab146e3de27 100644 --- a/reactos/win32ss/printing/monitors/localmon/ports.c +++ b/reactos/win32ss/printing/monitors/localmon/ports.c @@ -541,8 +541,8 @@ LocalmonClosePort(HANDLE hPort) { EnterCriticalSection(&pPort->pLocalmon->Section); RemoveEntryList(&pPort->Entry); - DllFreeSplMem(pPort); LeaveCriticalSection(&pPort->pLocalmon->Section); + DllFreeSplMem(pPort); } SetLastError(ERROR_SUCCESS);