Module: wine Branch: master Commit: fdda480df5269574221b1f1b55df66fb2cc687da URL: http://source.winehq.org/git/wine.git/?a=commit;h=fdda480df5269574221b1f1b55...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Jan 28 16:46:31 2015 +0300
kernel32: Fix writing resource section as a last section in UpdateResource().
---
dlls/kernel32/resource.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/resource.c b/dlls/kernel32/resource.c index 8d9009c..c88c921 100644 --- a/dlls/kernel32/resource.c +++ b/dlls/kernel32/resource.c @@ -1545,7 +1545,8 @@ static BOOL write_raw_resources( QUEUEDUPDATES *updates ) int delta = section_size - (sec->SizeOfRawData + (-sec->SizeOfRawData) % PeFileAlignment); int rva_delta = virtual_section_size - (sec->Misc.VirtualSize + (-sec->Misc.VirtualSize) % PeSectionAlignment); - BOOL rsrc_is_last = sec->PointerToRawData + sec->SizeOfRawData == old_size; + /* when new section is added it could end past current mapping size */ + BOOL rsrc_is_last = sec->PointerToRawData + sec->SizeOfRawData >= old_size; /* align .rsrc size when possible */ DWORD mapping_size = rsrc_is_last ? sec->PointerToRawData + section_size : old_size + delta;