From 634ee7a8cef2eac9f41cff4b42859d9d54b204bf Mon Sep 17 00:00:00 2001 From: Jon Maloy Date: Thu, 20 Jun 2024 10:35:27 -0400 Subject: [PATCH 29/31] MdePkg/X86UnitTestHost: set rdrand cpuid bit RH-Author: Jon Maloy RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 RH-Acked-by: Gerd Hoffmann RH-Commit: [29/31] 60851c6253df6f0114dc2c5598e0dde139d56c4c JIRA: https://issues.redhat.com/browse/RHEL-21856 Upstream: Merged CVE: CVE-2023-45237 commit 5e776299a2604b336a947e68593012ab2cc16eb4 Author: Gerd Hoffmann Date: Fri Jun 14 11:45:53 2024 +0200 MdePkg/X86UnitTestHost: set rdrand cpuid bit Set the rdrand feature bit when faking cpuid for host test cases. Needed to make the CryptoPkg test cases work. Signed-off-by: Gerd Hoffmann Signed-off-by: Jon Maloy --- MdePkg/Library/BaseLib/X86UnitTestHost.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/MdePkg/Library/BaseLib/X86UnitTestHost.c b/MdePkg/Library/BaseLib/X86UnitTestHost.c index d0e428457e..abc092a990 100644 --- a/MdePkg/Library/BaseLib/X86UnitTestHost.c +++ b/MdePkg/Library/BaseLib/X86UnitTestHost.c @@ -66,6 +66,15 @@ UnitTestHostBaseLibAsmCpuid ( OUT UINT32 *Edx OPTIONAL ) { + UINT32 RetEcx; + + RetEcx = 0; + switch (Index) { + case 1: + RetEcx |= BIT30; /* RdRand */ + break; + } + if (Eax != NULL) { *Eax = 0; } @@ -73,7 +82,7 @@ UnitTestHostBaseLibAsmCpuid ( *Ebx = 0; } if (Ecx != NULL) { - *Ecx = 0; + *Ecx = RetEcx; } if (Edx != NULL) { *Edx = 0; -- 2.39.3