From 3800b9ee5d6d4c05c7e27f949c3b32c422c78f2d Mon Sep 17 00:00:00 2001 From: Jon Maloy Date: Thu, 20 Jun 2024 16:02:31 -0400 Subject: [PATCH 16/31] MdePkg: Add deprecated warning to BaseRngLibTimer 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: [16/31] 6e199344d083e90f60cbe01dfb3c2a3719e3177d JIRA: https://issues.redhat.com/browse/RHEL-21856 Upstream: Merged CVE: CVE-2023-45237 commit e93468442b7da7bc80e00014e854c0c8a0a7184b Author: Pierre Gondois Date: Fri Aug 11 16:33:03 2023 +0200 MdePkg: Add deprecated warning to BaseRngLibTimer BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4504 To keep the MdePkg self-contained and avoid dependencies on GUIDs defined in other packages, the BaseRngLibTimer was moved to the MdePkg. Add a constructor to warn and request to use the MdeModulePkg implementation. Signed-off-by: Pierre Gondois Reviewed-by: Liming Gao Reviewed-by: Sami Mujawar Acked-by: Ard Biesheuvel Tested-by: Kun Qin Signed-off-by: Jon Maloy --- .../BaseRngLibTimerLib/BaseRngLibTimerLib.inf | 1 + .../Library/BaseRngLibTimerLib/RngLibTimer.c | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf b/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf index f857290e82..96c90db63f 100644 --- a/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +++ b/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf @@ -23,6 +23,7 @@ MODULE_TYPE = BASE VERSION_STRING = 1.0 LIBRARY_CLASS = RngLib + CONSTRUCTOR = BaseRngLibTimerConstructor [Sources] RngLibTimer.c diff --git a/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c b/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c index 54d29d96f3..6b8392162b 100644 --- a/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +++ b/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c @@ -13,6 +13,28 @@ #define DEFAULT_DELAY_TIME_IN_MICROSECONDS 10 +/** + This implementation is to be replaced by its MdeModulePkg copy. + The cause being that some GUIDs (gEdkiiRngAlgorithmUnSafe) cannot + be defined in the MdePkg. + + @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS. +**/ +RETURN_STATUS +EFIAPI +BaseRngLibTimerConstructor ( + VOID + ) +{ + DEBUG (( + DEBUG_WARN, + "Warning: This BaseRngTimerLib implementation will be deprecated. " + "Please use the MdeModulePkg implementation equivalent.\n" + )); + + return RETURN_SUCCESS; +} + /** Using the TimerLib GetPerformanceCounterProperties() we delay for enough time for the PerformanceCounter to increment. -- 2.39.3