From 7c0b1b62688258c3478b218e62691a44295f57c9 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 4 Mar 2016 11:24:32 +0300 Subject: [PATCH] ole32: Hold a lock when checking is spy is already registered. Signed-off-by: Nikolay Sivov Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- dlls/ole32/ifs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c index 7469fb27217..c9e5625e910 100644 --- a/dlls/ole32/ifs.c +++ b/dlls/ole32/ifs.c @@ -467,11 +467,12 @@ HRESULT WINAPI CoRegisterMallocSpy(LPMALLOCSPY pMallocSpy) TRACE("%p\n", pMallocSpy); if(!pMallocSpy) return E_INVALIDARG; - if(Malloc32.pSpy) return CO_E_OBJISREG; EnterCriticalSection(&IMalloc32_SpyCS); - if (SUCCEEDED(IMallocSpy_QueryInterface(pMallocSpy, &IID_IMallocSpy, (void**)&pSpy))) { + if (Malloc32.pSpy) + hres = CO_E_OBJISREG; + else if (SUCCEEDED(IMallocSpy_QueryInterface(pMallocSpy, &IID_IMallocSpy, (void**)&pSpy))) { Malloc32.pSpy = pSpy; hres = S_OK; }