Module: wine Branch: master Commit: 9b2af10f020fb17a5707646a62185e75b8bf82d2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9b2af10f020fb17a5707646a62...
Author: James Hawkins truiken@gmail.com Date: Wed Dec 16 19:05:18 2009 -0800
kernel32: Free the resource data if a matching resource exists and we choose not to overwrite the existing resource.
---
dlls/kernel32/resource.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/resource.c b/dlls/kernel32/resource.c index d405b95..76d2741 100644 --- a/dlls/kernel32/resource.c +++ b/dlls/kernel32/resource.c @@ -810,7 +810,7 @@ static BOOL update_add_resource( QUEUEDUPDATES *updates, LPCWSTR Type, LPCWSTR N if (existing) { if (!overwrite_existing) - return TRUE; + return FALSE; list_remove( &existing->entry ); HeapFree( GetProcessHeap(), 0, existing ); } @@ -1076,7 +1076,10 @@ static BOOL enumerate_mapped_resources( QUEUEDUPDATES *updates,
resdata = allocate_resource_data( Lang, data->CodePage, p, data->Size, FALSE ); if (resdata) - update_add_resource( updates, Type, Name, resdata, FALSE ); + { + if (!update_add_resource( updates, Type, Name, resdata, FALSE )) + HeapFree( GetProcessHeap(), 0, resdata ); + } } res_free_str( Name ); }