From: Andrew Talbot Date: Tue, 17 Jun 2008 20:21:55 +0000 (+0100) Subject: user32: Dangling pointer fix. X-Git-Tag: wine-1.1.0~507 X-Git-Url: http://git.etersoft.ru/projects/?a=commitdiff_plain;h=aceb12265fd4043882ec010cd82def79feced9f7;p=wine%2Feterwine.git user32: Dangling pointer fix. --- diff --git a/dlls/user32/dde_misc.c b/dlls/user32/dde_misc.c index 9061836be1..049deaee68 100644 --- a/dlls/user32/dde_misc.c +++ b/dlls/user32/dde_misc.c @@ -515,7 +515,6 @@ UINT WDML_Initialize(LPDWORD pidInst, PFNCALLBACK pfnCallback, ret = DMLERR_INVALIDPARAMETER; goto theError; } - HeapFree(GetProcessHeap(), 0, pInstance); /* finished - release heap space used as work store */ /* can't reinitialise if we have initialised nothing !! */ reference_inst = WDML_InstanceList; /* must first check if we have been given a valid instance to re-initialise !! how do we do that ? */ @@ -571,6 +570,9 @@ UINT WDML_Initialize(LPDWORD pidInst, PFNCALLBACK pfnCallback, reference_inst->CBFflags = pInstance->CBFflags; reference_inst->clientOnly = pInstance->clientOnly; reference_inst->monitorFlags = pInstance->monitorFlags; + + HeapFree(GetProcessHeap(), 0, pInstance); /* finished - release heap space used as work store */ + LeaveCriticalSection(&WDML_CritSect); }