]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add boundary check against variable MTRR count.
authorxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 10 Aug 2010 08:57:36 +0000 (08:57 +0000)
committerxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 10 Aug 2010 08:57:36 +0000 (08:57 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10787 6f19259b-4bc3-4df7-8a09-765794883524

UefiCpuPkg/Library/MtrrLib/MtrrLib.c

index 1f2604ab8b9fecd5a4f6ed1be92e187d2882be49..fca9258ed7aef8142f484813969c8fd433a9f841 100644 (file)
@@ -93,11 +93,16 @@ GetVariableMtrrCount (
   VOID\r
   )\r
 {\r
+  UINT32  VariableMtrrCount;\r
+\r
   if (!IsMtrrSupported ()) {\r
     return 0;\r
   }\r
 \r
-  return (UINT32)(AsmReadMsr64 (MTRR_LIB_IA32_MTRR_CAP) & MTRR_LIB_IA32_MTRR_CAP_VCNT_MASK);\r
+  VariableMtrrCount = (UINT32)(AsmReadMsr64 (MTRR_LIB_IA32_MTRR_CAP) & MTRR_LIB_IA32_MTRR_CAP_VCNT_MASK);\r
+  ASSERT (VariableMtrrCount <= MTRR_NUMBER_OF_VARIABLE_MTRR);\r
+\r
+  return VariableMtrrCount;\r
 }\r
 \r
 /**\r