[ros-diffs] [gedmurphy] 34641: Fix Rva handling code
gedmurphy at svn.reactos.org
gedmurphy at svn.reactos.org
Mon Jul 21 19:50:28 CEST 2008
Author: gedmurphy
Date: Mon Jul 21 12:50:27 2008
New Revision: 34641
URL: http://svn.reactos.org/svn/reactos?rev=34641&view=rev
Log:
Fix Rva handling code
Modified:
trunk/reactos/lib/rtl/image.c
Modified: trunk/reactos/lib/rtl/image.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/image.c?rev=34641&r1=34640&r2=34641&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/image.c [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/image.c [iso-8859-1] Mon Jul 21 12:50:27 2008
@@ -112,13 +112,13 @@
ULONG Count;
Count = SWAPW(NtHeader->FileHeader.NumberOfSections);
- Section = (PIMAGE_SECTION_HEADER)((ULONG)&NtHeader->OptionalHeader +
- SWAPW(NtHeader->FileHeader.SizeOfOptionalHeader));
- while (Count)
+ Section = IMAGE_FIRST_SECTION(NtHeader);
+
+ while (Count--)
{
Va = SWAPD(Section->VirtualAddress);
if ((Va <= Rva) &&
- (Rva < Va + SWAPD(Section->SizeOfRawData)))
+ (Rva < Va + SWAPD(Section->Misc.VirtualSize)))
return Section;
Section++;
}
@@ -145,7 +145,7 @@
if (Section == NULL ||
Rva < SWAPD(Section->VirtualAddress) ||
- Rva >= SWAPD(Section->VirtualAddress) + SWAPD(Section->SizeOfRawData))
+ Rva >= SWAPD(Section->VirtualAddress) + SWAPD(Section->Misc.VirtualSize))
{
Section = RtlImageRvaToSection (NtHeader, BaseAddress, Rva);
if (Section == NULL)
More information about the Ros-diffs
mailing list