From 713290ebcea57bc5f2a0b7c1a7e237a225e8fdcb Mon Sep 17 00:00:00 2001 From: Dan Kegel Date: Mon, 26 May 2008 19:19:11 -0700 Subject: [PATCH] fusion: Use HeapAlloc, not strdup, to avoid malloc/HeapFree mismatch. --- dlls/fusion/assembly.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/dlls/fusion/assembly.c b/dlls/fusion/assembly.c index 8973af3d840..94ea5424e18 100644 --- a/dlls/fusion/assembly.c +++ b/dlls/fusion/assembly.c @@ -406,7 +406,11 @@ HRESULT assembly_release(ASSEMBLY *assembly) static LPSTR assembly_dup_str(ASSEMBLY *assembly, WORD index) { - return strdup((LPSTR)&assembly->strings[index]); + LPSTR str = (LPSTR)&assembly->strings[index]; + LPSTR cpy = HeapAlloc(GetProcessHeap(), 0, strlen(str)+1); + if (cpy) + strcpy(cpy, str); + return cpy; } HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name) @@ -431,8 +435,11 @@ HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name) HRESULT assembly_get_path(ASSEMBLY *assembly, LPSTR *path) { - *path = strdup(assembly->path); - if (!*path) + LPSTR cpy = HeapAlloc(GetProcessHeap(), 0, strlen(assembly->path)+1); + *path = cpy; + if (cpy) + strcpy(cpy, assembly->path); + else return E_OUTOFMEMORY; return S_OK; -- 2.11.4.GIT