From: Alistair Leslie-Hughes Subject: [2/3] dpnet: Free previous allocated data (try 2) Message-Id: <54F678DD.1070106@hotmail.com> Date: Wed, 04 Mar 2015 14:15:41 +1100 Hi, Fixed binary data free Changelog: dpnet: Free previous allocated data Best Regards Alistair Leslie-Hughes From 0c6ca9704e54d2db292d777923e2d4b2f86bf3db Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 3 Mar 2015 08:43:55 +1100 Subject: [PATCH] Free previous alloocated data To: wine-patches --- dlls/dpnet/address.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dlls/dpnet/address.c b/dlls/dpnet/address.c index 5eea0cb..6c91f48 100644 --- a/dlls/dpnet/address.c +++ b/dlls/dpnet/address.c @@ -426,6 +426,13 @@ static HRESULT WINAPI IDirectPlay8AddressImpl_AddComponent(IDirectPlay8Address * TRACE("Found %s\n", debugstr_w(pwszName)); found = TRUE; + if(entry->type == DPNA_DATATYPE_STRING_ANSI) + heap_free(entry->data.ansi); + else if(entry->type == DPNA_DATATYPE_STRING) + heap_free(entry->data.string); + else if(entry->type == DPNA_DATATYPE_BINARY) + heap_free(entry->data.binary); + break; } } @@ -451,20 +458,14 @@ static HRESULT WINAPI IDirectPlay8AddressImpl_AddComponent(IDirectPlay8Address * TRACE("(%p, %u): GUID Type -> %s\n", lpvData, dwDataSize, debugstr_guid(lpvData)); break; case DPNA_DATATYPE_STRING: - heap_free(entry->data.string); - entry->data.string = heap_strdupW((WCHAR*)lpvData); TRACE("(%p, %u): STRING Type -> %s\n", lpvData, dwDataSize, debugstr_w((WCHAR*)lpvData)); break; case DPNA_DATATYPE_STRING_ANSI: - heap_free(entry->data.ansi); - entry->data.ansi = heap_strdupA((CHAR*)lpvData); TRACE("(%p, %u): ANSI STRING Type -> %s\n", lpvData, dwDataSize, (const CHAR*) lpvData); break; case DPNA_DATATYPE_BINARY: - heap_free(entry->data.binary); - entry->data.binary = heap_alloc(dwDataSize); memcpy(entry->data.binary, lpvData, dwDataSize); TRACE("(%p, %u): BINARY Type\n", lpvData, dwDataSize); -- 2.1.0