mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 04:13:18 +00:00
[WIN32K]
- Fix amd64 build - Add an overflow check, ASSERT success when unmapping a section view svn path=/trunk/; revision=58597
This commit is contained in:
parent
91f32c3e71
commit
2c17a42c86
2 changed files with 12 additions and 8 deletions
|
@ -80,9 +80,9 @@ extern const FLOATOBJ gef16;
|
||||||
#define FLOATOBJ_16 16.
|
#define FLOATOBJ_16 16.
|
||||||
#define FLOATOBJ_1_16 (1./16.)
|
#define FLOATOBJ_1_16 (1./16.)
|
||||||
|
|
||||||
#define gef0 FLOATOBJ_0
|
static const FLOATOBJ gef0 = 0.;
|
||||||
#define gef1 FLOATOBJ_1
|
static const FLOATOBJ gef1 = 1.;
|
||||||
#define gef16 FLOATOBJ_16
|
static const FLOATOBJ gef16 = 16.;
|
||||||
|
|
||||||
#define FLOATOBJ_Set0(fo) *(fo) = 0;
|
#define FLOATOBJ_Set0(fo) *(fo) = 0;
|
||||||
#define FLOATOBJ_Set1(fo) *(fo) = 1;
|
#define FLOATOBJ_Set1(fo) *(fo) = 1;
|
||||||
|
|
|
@ -26,6 +26,13 @@ EngMapSectionView(
|
||||||
PVOID pvBaseAddress;
|
PVOID pvBaseAddress;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
/* Check if the size is ok (for 64 bit) */
|
||||||
|
if (cjSize > ULONG_MAX)
|
||||||
|
{
|
||||||
|
DPRINT1("chSize out of range: 0x%Id\n", cjSize);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Align the offset at allocation granularity and compensate for the size */
|
/* Align the offset at allocation granularity and compensate for the size */
|
||||||
liSectionOffset.QuadPart = cjOffset & ~(MM_ALLOCATION_GRANULARITY - 1);
|
liSectionOffset.QuadPart = cjOffset & ~(MM_ALLOCATION_GRANULARITY - 1);
|
||||||
cjSize += cjOffset & (MM_ALLOCATION_GRANULARITY - 1);
|
cjSize += cjOffset & (MM_ALLOCATION_GRANULARITY - 1);
|
||||||
|
@ -48,7 +55,7 @@ EngMapSectionView(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Secure the section memory */
|
/* Secure the section memory */
|
||||||
*phSecure = EngSecureMem(pvBaseAddress, cjSize);
|
*phSecure = EngSecureMem(pvBaseAddress, (ULONG)cjSize);
|
||||||
if (!*phSecure)
|
if (!*phSecure)
|
||||||
{
|
{
|
||||||
ZwUnmapViewOfSection(NtCurrentProcess(), pvBaseAddress);
|
ZwUnmapViewOfSection(NtCurrentProcess(), pvBaseAddress);
|
||||||
|
@ -76,10 +83,7 @@ EngUnmapSectionView(
|
||||||
|
|
||||||
/* Unmap the section view */
|
/* Unmap the section view */
|
||||||
Status = MmUnmapViewOfSection(PsGetCurrentProcess(), pvBits);
|
Status = MmUnmapViewOfSection(PsGetCurrentProcess(), pvBits);
|
||||||
if (!NT_SUCCESS(Status))
|
ASSERT(NT_SUCCESS(Status));
|
||||||
{
|
|
||||||
DPRINT1("Could not unmap section view!\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue