From 659fcbe394413b162f830ebdfcffb10d872097f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Sun, 20 Nov 2011 19:45:06 +0000 Subject: [PATCH] [RTL] - explicitly truncate some values, so it doesn't count as an error for compiler/MSVC runtime checker svn path=/trunk/; revision=54462 --- reactos/lib/rtl/image.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/reactos/lib/rtl/image.c b/reactos/lib/rtl/image.c index ed4272c45f2..d901644d3df 100644 --- a/reactos/lib/rtl/image.c +++ b/reactos/lib/rtl/image.c @@ -369,7 +369,7 @@ LdrProcessRelocationBlockLongLong( { SHORT Offset; USHORT Type; - USHORT i; + ULONG i; PUSHORT ShortPtr; PULONG LongPtr; PULONGLONG LongLongPtr; @@ -379,7 +379,6 @@ LdrProcessRelocationBlockLongLong( Offset = SWAPW(*TypeOffset) & 0xFFF; Type = SWAPW(*TypeOffset) >> 12; ShortPtr = (PUSHORT)(RVA(Address, Offset)); - /* * Don't relocate within the relocation section itself. * GCC/LD generates sometimes relocation records for the relocation section. @@ -398,16 +397,16 @@ LdrProcessRelocationBlockLongLong( break; case IMAGE_REL_BASED_HIGH: - *ShortPtr = HIWORD(MAKELONG(0, *ShortPtr) + (LONG)Delta); + *ShortPtr = HIWORD(MAKELONG(0, *ShortPtr) + (Delta & 0xFFFFFFFF)); break; case IMAGE_REL_BASED_LOW: - *ShortPtr = SWAPW(*ShortPtr) + LOWORD(Delta); + *ShortPtr = SWAPW(*ShortPtr) + LOWORD(Delta & 0xFFFF); break; case IMAGE_REL_BASED_HIGHLOW: LongPtr = (PULONG)RVA(Address, Offset); - *LongPtr = SWAPD(*LongPtr) + (ULONG)Delta; + *LongPtr = SWAPD(*LongPtr) + (Delta & 0xFFFFFFFF); break; case IMAGE_REL_BASED_DIR64: