[ros-diffs] [ros-arm-bringup] 32362: Fix a couple of off-by-one bugs we recently introduced -- PFNs are one of the only indexes which are actually 0-based, so you really want to loop from 0 to the last page, inclusive (unlike most loops where you would stop *before* the last element index).

ros-arm-bringup at svn.reactos.org ros-arm-bringup at svn.reactos.org
Thu Feb 14 21:20:45 CET 2008


Author: ros-arm-bringup
Date: Thu Feb 14 23:20:44 2008
New Revision: 32362

URL: http://svn.reactos.org/svn/reactos?rev=32362&view=rev
Log:
Fix a couple of off-by-one bugs we recently introduced -- PFNs are one of the only indexes which are actually 0-based, so you really want to loop from 0 to the last page, inclusive (unlike most loops where you would stop *before* the last element index).

Modified:
    trunk/reactos/ntoskrnl/mm/freelist.c

Modified: trunk/reactos/ntoskrnl/mm/freelist.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/freelist.c?rev=32362&r1=32361&r2=32362&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/freelist.c (original)
+++ trunk/reactos/ntoskrnl/mm/freelist.c Thu Feb 14 23:20:44 2008
@@ -354,7 +354,7 @@
     KernelPageEnd = LastPhysKernelAddress / PAGE_SIZE;
     
     /* Loop every page on the system */
-    for (i = 0; i < MmPageArraySize; i++)
+    for (i = 0; i <= MmPageArraySize; i++)
     {                
         /* Check if it's part of RAM */
         if (MiIsPfnRam(BIOSMemoryMap, AddressRangeCount, i))
@@ -417,7 +417,7 @@
                 MmPageArray[i].MapCount = 1;
                 MmStats.NrSystemPages++;
             }
-            else if (i > (MiFreeDescriptor->BasePage + MiFreeDescriptor->PageCount - 1))
+            else if (i >= (MiFreeDescriptor->BasePage + MiFreeDescriptor->PageCount))
             {
                 /* These are pages we allocated above to hold the PFN DB */
                 MmPageArray[i].Flags.Type = MM_PHYSICAL_PAGE_USED;




More information about the Ros-diffs mailing list