UefiCpuPkg/CpuPageTableLib: Init local variable before using it.

The local variable OneOfPagingEntry is used before initialized, this
may cause reserved bit in page table entry is set especially in PAE
paging mode. The bug is random because it depends on the value in
stack.

Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
This commit is contained in:
Zhiguang Liu 2023-11-27 14:41:52 +08:00 committed by mergify[bot]
parent ef3fde64aa
commit c83ffd2676
1 changed files with 1 additions and 3 deletions

View File

@ -338,7 +338,7 @@ PageTableLibMapInLevel (
ParentAttribute = &LocalParentAttribute;
OriginalParentPagingEntry.Uint64 = ParentPagingEntry->Uint64;
OneOfPagingEntry.Uint64 = 0;
//
// RegionLength: 256T (1 << 48) 512G (1 << 39), 1G (1 << 30), 2M (1 << 21) or 4K (1 << 12).
//
@ -367,8 +367,6 @@ PageTableLibMapInLevel (
if (RETURN_ERROR (Status)) {
return Status;
}
OneOfPagingEntry.Pnle.Uint64 = 0;
} else {
PageTableLibSetPle (Level, &OneOfPagingEntry, 0, &PleBAttribute, &AllOneMask);
}