Nikolay Sivov : kernel32: Fix writing resource section as a last section in UpdateResource().

Alexandre Julliard julliard at wine.codeweavers.com
Wed Jan 28 15:45:34 CST 2015


Module: wine
Branch: master
Commit: fdda480df5269574221b1f1b55df66fb2cc687da
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fdda480df5269574221b1f1b55df66fb2cc687da

Author: Nikolay Sivov <nsivov at 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;
 




More information about the wine-cvs mailing list