Commit eb81fa28 authored by Rob Shearman's avatar Rob Shearman Committed by Alexandre Julliard

gdi32: Fix memory leaks on EMF_Create_HENHMETAFILE failure.

parent d18ad163
...@@ -466,8 +466,12 @@ UINT WINAPI GetEnhMetaFileDescriptionW( ...@@ -466,8 +466,12 @@ UINT WINAPI GetEnhMetaFileDescriptionW(
HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT bufsize, const BYTE *buf) HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT bufsize, const BYTE *buf)
{ {
ENHMETAHEADER *emh = HeapAlloc( GetProcessHeap(), 0, bufsize ); ENHMETAHEADER *emh = HeapAlloc( GetProcessHeap(), 0, bufsize );
HENHMETAFILE hmf;
memmove(emh, buf, bufsize); memmove(emh, buf, bufsize);
return EMF_Create_HENHMETAFILE( emh, FALSE ); hmf = EMF_Create_HENHMETAFILE( emh, FALSE );
if (!hmf)
HeapFree( GetProcessHeap(), 0, emh );
return hmf;
} }
/***************************************************************************** /*****************************************************************************
...@@ -2509,6 +2513,8 @@ HENHMETAFILE WINAPI CopyEnhMetaFileA( ...@@ -2509,6 +2513,8 @@ HENHMETAFILE WINAPI CopyEnhMetaFileA(
emrDst = HeapAlloc( GetProcessHeap(), 0, emrSrc->nBytes ); emrDst = HeapAlloc( GetProcessHeap(), 0, emrSrc->nBytes );
memcpy( emrDst, emrSrc, emrSrc->nBytes ); memcpy( emrDst, emrSrc, emrSrc->nBytes );
hmfDst = EMF_Create_HENHMETAFILE( emrDst, FALSE ); hmfDst = EMF_Create_HENHMETAFILE( emrDst, FALSE );
if (!hmfDst)
HeapFree( GetProcessHeap(), 0, emrDst );
} else { } else {
HANDLE hFile; HANDLE hFile;
DWORD w; DWORD w;
...@@ -2549,6 +2555,8 @@ HENHMETAFILE WINAPI CopyEnhMetaFileW( ...@@ -2549,6 +2555,8 @@ HENHMETAFILE WINAPI CopyEnhMetaFileW(
emrDst = HeapAlloc( GetProcessHeap(), 0, emrSrc->nBytes ); emrDst = HeapAlloc( GetProcessHeap(), 0, emrSrc->nBytes );
memcpy( emrDst, emrSrc, emrSrc->nBytes ); memcpy( emrDst, emrSrc, emrSrc->nBytes );
hmfDst = EMF_Create_HENHMETAFILE( emrDst, FALSE ); hmfDst = EMF_Create_HENHMETAFILE( emrDst, FALSE );
if (!hmfDst)
HeapFree( GetProcessHeap(), 0, emrDst );
} else { } else {
HANDLE hFile; HANDLE hFile;
DWORD w; DWORD w;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment