mirror of https://github.com/acidanthera/audk.git
IntelSiliconPkg MicrocodeUpdateDxe: Fix (ExtendedTableLength & 0x3)!=0
The first 48 bytes contain the microcode update header. DataSize must be a multiple of DWORDs. TotalSize is always a multiple of 1024. Both size of CPU_MICROCODE_EXTENDED_TABLE_HEADER and CPU_MICROCODE_EXTENDED_TABLE are multiple of DWORDs. So (ExtendedTableLength & 0x3)!=0 should be (ExtendedTableLength & 0x3)==0. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Rangasai V Chaganty <rangasai.v.chaganty@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Rangasai V Chaganty <rangasai.v.chaganty@intel.com>
This commit is contained in:
parent
889c7ca1b5
commit
3bd91ae236
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
MicrocodeWrite() and VerifyMicrocode() will receive untrusted input and do basic validation.
|
MicrocodeWrite() and VerifyMicrocode() will receive untrusted input and do basic validation.
|
||||||
|
|
||||||
Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -494,7 +494,7 @@ VerifyMicrocode (
|
||||||
//
|
//
|
||||||
// Calculate Extended Checksum
|
// Calculate Extended Checksum
|
||||||
//
|
//
|
||||||
if ((ExtendedTableLength > sizeof(CPU_MICROCODE_EXTENDED_TABLE_HEADER)) && ((ExtendedTableLength & 0x3) != 0)) {
|
if ((ExtendedTableLength > sizeof(CPU_MICROCODE_EXTENDED_TABLE_HEADER)) && ((ExtendedTableLength & 0x3) == 0)) {
|
||||||
CheckSum32 = CalculateSum32((UINT32 *)ExtendedTableHeader, ExtendedTableLength);
|
CheckSum32 = CalculateSum32((UINT32 *)ExtendedTableHeader, ExtendedTableLength);
|
||||||
if (CheckSum32 == 0) {
|
if (CheckSum32 == 0) {
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue