Huw Davies : user32: Don't access pConv after it's been freed.

Alexandre Julliard julliard at winehq.org
Mon Jul 21 08:52:23 CDT 2008


Module: wine
Branch: master
Commit: bce23d7edbc83e5a5170f2f9d46fbb801c8750d7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bce23d7edbc83e5a5170f2f9d46fbb801c8750d7

Author: Huw Davies <huw at codeweavers.com>
Date:   Mon Jul 21 11:15:49 2008 +0100

user32: Don't access pConv after it's been freed.

---

 dlls/user32/dde_misc.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/dlls/user32/dde_misc.c b/dlls/user32/dde_misc.c
index 049deae..d99cdcf 100644
--- a/dlls/user32/dde_misc.c
+++ b/dlls/user32/dde_misc.c
@@ -1658,9 +1658,10 @@ void WDML_RemoveServer(WDML_INSTANCE* pInstance, HSZ hszService, HSZ hszTopic)
 		pConvNext = pConv->next;
 		if (DdeCmpStringHandles(pConv->hszService, hszService) == 0)
 		{
+                    HWND client = pConv->hwndClient, server = pConv->hwndServer;
 		    WDML_RemoveConv(pConv, WDML_SERVER_SIDE);
 		    /* don't care about return code (whether client window is present or not) */
-		    PostMessageW(pConv->hwndClient, WM_DDE_TERMINATE, (WPARAM)pConv->hwndServer, 0);
+		    PostMessageW(client, WM_DDE_TERMINATE, (WPARAM)server, 0);
 		}
 	    }
 	    if (pServer == pInstance->servers)




More information about the wine-cvs mailing list