user32: Dangling pointer fix

Andrew Talbot andrew.talbot at talbotville.com
Tue Jun 17 15:21:55 CDT 2008


Changelog:
    user32: Dangling pointer fix.

diff --git a/dlls/user32/dde_misc.c b/dlls/user32/dde_misc.c
index 9061836..049deae 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);
     }
 



More information about the wine-patches mailing list