[PATCH] ole32: fixed critical section lock logic (Coverity)
Marcus Meissner
meissner at suse.de
Tue Mar 15 03:16:28 CDT 2011
Hi,
On pending Malloc Spy removal we would not leave the
criticalsection.
The whitespace damage was there before, I did not touch it :/
Ciao, Marcus
---
dlls/ole32/ifs.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c
index a4857d4..6d197f5 100644
--- a/dlls/ole32/ifs.c
+++ b/dlls/ole32/ifs.c
@@ -201,6 +201,7 @@ static LPVOID WINAPI IMalloc_fnAlloc(LPMALLOC iface, DWORD cb) {
static LPVOID WINAPI IMalloc_fnRealloc(LPMALLOC iface,LPVOID pv,DWORD cb) {
LPVOID pNewMemory;
+ BOOL locked = FALSE;
TRACE("(%p,%d)\n",pv,cb);
@@ -209,6 +210,7 @@ static LPVOID WINAPI IMalloc_fnRealloc(LPMALLOC iface,LPVOID pv,DWORD cb) {
BOOL fSpyed;
EnterCriticalSection(&IMalloc32_SpyCS);
+ locked = TRUE;
fSpyed = RemoveMemoryLocation(pv);
cb = IMallocSpy_PreRealloc(Malloc32.pSpy, pv, cb, &pRealMemory, fSpyed);
@@ -237,8 +239,8 @@ static LPVOID WINAPI IMalloc_fnRealloc(LPMALLOC iface,LPVOID pv,DWORD cb) {
if(Malloc32.pSpy) {
pNewMemory = IMallocSpy_PostRealloc(Malloc32.pSpy, pNewMemory, TRUE);
if (pNewMemory) AddMemoryLocation(pNewMemory);
- LeaveCriticalSection(&IMalloc32_SpyCS);
}
+ if (locked) LeaveCriticalSection(&IMalloc32_SpyCS);
TRACE("--(%p)\n",pNewMemory);
return pNewMemory;
--
1.7.1
More information about the wine-patches
mailing list