[1/2] version: zero pad section up to virtual size

Ričardas Barkauskas miegalius at gmail.com
Wed Nov 10 17:00:02 CST 2010


Allows GOG version of Temple of Elemental Evil to run instead of crash.

Ričardas Barkauskas
REalm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20101111/3ee76207/attachment.htm>
-------------- next part --------------
From e8c28d3e49877474ed30735e78d60830707cf7c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ri=C4=8Dardas=20Barkauskas?= <miegalius at gmail.com>
Date: Thu, 11 Nov 2010 00:35:46 +0200
Subject: version: zero pad section up to virtual size

---
 dlls/version/resource.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/version/resource.c b/dlls/version/resource.c
index 64d39dd..91c954f 100644
--- a/dlls/version/resource.c
+++ b/dlls/version/resource.c
@@ -282,8 +282,12 @@ static BOOL find_pe_resource( HFILE lzfd, DWORD *resLen, DWORD *resOff )
     }
 
     /* Read in resource section */
-    resSectionSize = sections[i].SizeOfRawData;
-    resSection = HeapAlloc( GetProcessHeap(), 0, resSectionSize );
+    if ( sections[i].SizeOfRawData < sections[i].Misc.VirtualSize )
+        resSectionSize = sections[i].SizeOfRawData;
+    else
+        resSectionSize = sections[i].Misc.VirtualSize;
+
+    resSection = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sections[i].Misc.VirtualSize );
     if ( !resSection )
     {
         HeapFree( GetProcessHeap(), 0, sections );
-- 
1.7.2.3


More information about the wine-patches mailing list