mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
- Fixed the setting of the page protection for ntoskrnl.
The image is loaded without the size of the bss section. Pages after the bss section may not be changed. svn path=/trunk/; revision=11182
This commit is contained in:
parent
a573c6ea80
commit
49871ae71b
1 changed files with 9 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: loader.c,v 1.146 2004/09/28 20:16:24 hbirr Exp $
|
/* $Id: loader.c,v 1.147 2004/10/04 17:27:13 hbirr Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -666,7 +666,7 @@ LdrLookupPageProtection(PVOID PageStart,
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
PVOID BaseAddress;
|
PVOID BaseAddress;
|
||||||
|
|
||||||
for (Idx = 0; Idx < PEFileHeader->NumberOfSections; Idx++)
|
for (Idx = 0; Idx < PEFileHeader->NumberOfSections && (!Write || !Execute); Idx++)
|
||||||
{
|
{
|
||||||
Characteristics = PESectionHeaders[Idx].Characteristics;
|
Characteristics = PESectionHeaders[Idx].Characteristics;
|
||||||
if (!(Characteristics & IMAGE_SECTION_NOLOAD))
|
if (!(Characteristics & IMAGE_SECTION_NOLOAD))
|
||||||
|
@ -1111,6 +1111,13 @@ LdrSafePEProcessModule(PVOID ModuleLoadBase,
|
||||||
MmSetPageProtect(NULL, PageAddress, Protect);
|
MmSetPageProtect(NULL, PageAddress, Protect);
|
||||||
PageAddress = (PVOID)((ULONG_PTR)PageAddress + PAGE_SIZE);
|
PageAddress = (PVOID)((ULONG_PTR)PageAddress + PAGE_SIZE);
|
||||||
}
|
}
|
||||||
|
if (DriverBase == ModuleLoadBase &&
|
||||||
|
Characteristics & IMAGE_SECTION_CHAR_BSS)
|
||||||
|
{
|
||||||
|
/* For ntoskrnl, we must stop after the bss section */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return DriverBase;
|
return DriverBase;
|
||||||
|
|
Loading…
Reference in a new issue