From f336e30ba14f182836919a7662134ac28ded983a Mon Sep 17 00:00:00 2001 From: Ray Ni Date: Thu, 14 Jul 2022 15:36:09 +0800 Subject: [PATCH] UefiCpuPkg/CpuPageTableLib: Return error on invalid parameters When LinearAddress or Length is not aligned on 4KB, PageTableMap() should return Invalid Parameter. Signed-off-by: Zhiguang Liu Reviewed-by: Ray Ni Reviewed-by: Eric Dong --- UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c index f75c6657ad..a0e1309462 100644 --- a/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c +++ b/UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableMap.c @@ -467,6 +467,13 @@ PageTableMap ( return RETURN_INVALID_PARAMETER; } + if ((LinearAddress % SIZE_4KB != 0) || (Length % SIZE_4KB != 0)) { + // + // LinearAddress and Length should be multiple of 4K. + // + return RETURN_INVALID_PARAMETER; + } + if ((*BufferSize != 0) && (Buffer == NULL)) { return RETURN_INVALID_PARAMETER; }