[ros-diffs] [jgardou] 54462: [RTL] - explicitly truncate some values, so it doesn't count as an error for compiler/MSVC runtime checker

jgardou at svn.reactos.org jgardou at svn.reactos.org
Sun Nov 20 19:45:07 UTC 2011


Author: jgardou
Date: Sun Nov 20 19:45:06 2011
New Revision: 54462

URL: http://svn.reactos.org/svn/reactos?rev=54462&view=rev
Log:
[RTL]
- explicitly truncate some values, so it doesn't count as an error for compiler/MSVC runtime checker

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=54462&r1=54461&r2=54462&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/image.c [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/image.c [iso-8859-1] Sun Nov 20 19:45:06 2011
@@ -369,7 +369,7 @@
 {
     SHORT Offset;
     USHORT Type;
-    USHORT i;
+    ULONG i;
     PUSHORT ShortPtr;
     PULONG LongPtr;
     PULONGLONG LongLongPtr;
@@ -379,7 +379,6 @@
         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 @@
             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:




More information about the Ros-diffs mailing list