From 7575526f07a1b60f6d6efa192e5640f05bbc2552 Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Mon, 22 Dec 2025 23:32:54 +0100 Subject: [PATCH] Fix physical page count overflow by using 64-bit type --- xtoskrnl/includes/mm/pfn.hh | 4 ++-- xtoskrnl/mm/data.cc | 2 +- xtoskrnl/mm/pfn.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xtoskrnl/includes/mm/pfn.hh b/xtoskrnl/includes/mm/pfn.hh index 3fc0eff..6473f1a 100644 --- a/xtoskrnl/includes/mm/pfn.hh +++ b/xtoskrnl/includes/mm/pfn.hh @@ -21,14 +21,14 @@ namespace MM STATIC PLOADER_MEMORY_DESCRIPTOR FreeDescriptor; STATIC ULONG_PTR HighestPhysicalPage; STATIC ULONG_PTR LowestPhysicalPage; - STATIC ULONG NumberOfPhysicalPages; + STATIC ULONGLONG NumberOfPhysicalPages; STATIC LOADER_MEMORY_DESCRIPTOR OriginalFreeDescriptor; STATIC PFN_NUMBER PfnDatabaseSize; public: STATIC XTAPI PFN_NUMBER AllocateBootstrapPages(IN PFN_NUMBER NumberOfPages); STATIC XTAPI VOID ComputePfnDatabaseSize(VOID); - STATIC XTAPI ULONG GetNumberOfPhysicalPages(VOID); + STATIC XTAPI ULONGLONG GetNumberOfPhysicalPages(VOID); STATIC XTAPI PFN_NUMBER GetPfnDatabaseSize(VOID); STATIC XTAPI VOID ScanMemoryDescriptors(VOID); }; diff --git a/xtoskrnl/mm/data.cc b/xtoskrnl/mm/data.cc index 93a8c4f..39733e1 100644 --- a/xtoskrnl/mm/data.cc +++ b/xtoskrnl/mm/data.cc @@ -34,7 +34,7 @@ ULONG_PTR MM::Pfn::LowestPhysicalPage = -1; MMMEMORY_LAYOUT MM::Manager::MemoryLayout; /* Number of physical pages */ -ULONG MM::Pfn::NumberOfPhysicalPages; +ULONGLONG MM::Pfn::NumberOfPhysicalPages; /* Number of system PTEs */ PFN_NUMBER MM::Manager::NumberOfSystemPtes; diff --git a/xtoskrnl/mm/pfn.cc b/xtoskrnl/mm/pfn.cc index 324f569..68e3337 100644 --- a/xtoskrnl/mm/pfn.cc +++ b/xtoskrnl/mm/pfn.cc @@ -68,7 +68,7 @@ MM::Pfn::ComputePfnDatabaseSize(VOID) * @since XT 1.0 */ XTAPI -ULONG +ULONGLONG MM::Pfn::GetNumberOfPhysicalPages(VOID) { /* Return the number of physical pages */