]> git.proxmox.com Git - mirror_edk2.git/commit
UefiCpuPkg/MpInitLib: MicrocodeDetect: Ensure checked range is valid
authorZhichao Gao <zhichao.gao@intel.com>
Wed, 26 Jun 2019 04:51:55 +0000 (12:51 +0800)
committerEric Dong <eric.dong@intel.com>
Thu, 27 Jun 2019 01:20:53 +0000 (09:20 +0800)
commitc54c85621826ace8684879fef9eb8ba7f49cfb54
treeca6eb4bab4d0d30d7ccc5817f90b2ddb04f86f75
parentf426d8744f3f5321cd88b23cf6e93865d5d18e00
UefiCpuPkg/MpInitLib: MicrocodeDetect: Ensure checked range is valid

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1934

0x0       MicrocodeBegin  MicrocodeEntry  MicrocodeEnd      0xffffffff
|--------------|---------------|---------------|---------------|
                                 valid TotalSize
TotalSize is only valid between 0 and (MicrocodeEnd - MicrocodeEntry).
So add '(UINTN)MicrocodeEntryPoint > (MAX_ADDRESS - TotalSize)' before
'((UINTN)MicrocodeEntryPoint + TotalSize) > MicrocodeEnd' to make sure
((UINTN)MicrocodeEntryPoint + TotalSize) wouldn't overflow.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
UefiCpuPkg/Library/MpInitLib/Microcode.c