summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Menzel <pmenzel@molgen.mpg.de>2021-03-05 01:16:14 +0100
committerPatrick Georgi <pgeorgi@google.com>2021-07-12 07:32:24 +0000
commitf16a5ec87104c6ab83a85ababdf9d2f43940ab5c (patch)
tree34cc26b43c244bf0b76da2c854c9778804e591fe /src
parent4715c6219c5e66fb83cd88982e6d09cc69483695 (diff)
vc/amd/sb800: Cast to UINT32 for shift out of bounds fix
It’s defined as `unsigned char`. SB800: sb_Before_Pci_Init shift out of bounds src/vendorcode/amd/cimx/sb800/SBCMN.c:643:53 ubsan: unrecoverable error. Found-by: UBSAN Change-Id: I0c5fa16bce5b68ed3b48bb17eae6d81af894b688 Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/51284 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Diffstat (limited to 'src')
-rw-r--r--src/vendorcode/amd/cimx/sb800/SBCMN.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/vendorcode/amd/cimx/sb800/SBCMN.c b/src/vendorcode/amd/cimx/sb800/SBCMN.c
index 8f1bbf9190..3d4ce82b6d 100644
--- a/src/vendorcode/amd/cimx/sb800/SBCMN.c
+++ b/src/vendorcode/amd/cimx/sb800/SBCMN.c
@@ -640,12 +640,12 @@ abcfgTbl (
while ( (pABTbl->regType) != 0xFF ) {
if ( pABTbl->regType > AXINDC ) {
- ddValue = pABTbl->regIndex | (pABTbl->regType << 29);
+ ddValue = pABTbl->regIndex | ((UINT32) pABTbl->regType << 29);
writeAlink (ddValue, ((readAlink (ddValue)) & (0xFFFFFFFF^ (pABTbl->regMask))) | pABTbl->regData);
} else {
- ddValue = 0x30 | (pABTbl->regType << 29);
+ ddValue = 0x30 | ((UINT32) pABTbl->regType << 29);
writeAlink (ddValue, pABTbl->regIndex);
- ddValue = 0x34 | (pABTbl->regType << 29);
+ ddValue = 0x34 | ((UINT32) pABTbl->regType << 29);
writeAlink (ddValue, ((readAlink (ddValue)) & (0xFFFFFFFF^ (pABTbl->regMask))) | pABTbl->regData);
}
++pABTbl;