From 4d0946c082dfaf1556a2ecb0fd496d27acb8cecd Mon Sep 17 00:00:00 2001 From: Ray Ni Date: Sat, 14 Feb 2026 07:46:34 +0000 Subject: [PATCH] MdeModulePkg/PeiDxeDebugLibReportStatusCode: Fix comma parsing The DebugPrintMarker function in PeiDxeDebugLibReportStatusCode/DebugLib.c does not recognize the comma (`,`) flag in printf-style format strings. When a driver uses format strings with thousand separators like "%,ld" to format large numbers (e.g., 1234567 as "1,234,567"), the DebugPrintMarker parser fails to recognize the comma flag and causes incorrect argument extraction when building the BASE_LIST for status code reporting, leading to unexpected or corrupted debug output in status code reports. The change is to add the missing comma flag check to align with BasePrintLib's format parsing logic, ensuring consistent behavior across all print library implementations. Signed-off-by: Ray Ni --- MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c b/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c index 6e39c271f1..666c6c9323 100644 --- a/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c +++ b/MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c @@ -181,7 +181,7 @@ DebugPrintMarker ( // Parse Flags and Width // for (Format++; TRUE; Format++) { - if ((*Format == '.') || (*Format == '-') || (*Format == '+') || (*Format == ' ')) { + if ((*Format == '.') || (*Format == '-') || (*Format == '+') || (*Format == ' ') || (*Format == ',')) { // // These characters in format field are omitted. //