From d1806ae8fa90489822f8f64df605af1aecaa0156 Mon Sep 17 00:00:00 2001 From: Pierre Gondois Date: Fri, 5 Jun 2026 17:26:22 +0200 Subject: [PATCH] DynamicTablesPkg: Clear output parameter before callback invocation BuildSmbiosTable() and BuildSmbiosTableEx() callback are called with uninitialized pointers which might contain garbage data. If one of these function fails, the exit handler uses these uninitialized fields. Set these uninitialized pointers in the caller function. Signed-off-by: Pierre Gondois --- .../SmbiosTableBuilder.c | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableBuilder.c b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableBuilder.c index 8fea73e4c3..7162d0ef7b 100644 --- a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableBuilder.c +++ b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableBuilder.c @@ -207,16 +207,18 @@ BuildAndInstallMultipleSmbiosTables ( UINTN TableCount; UINTN Index; - TableCount = 0; - Status = Generator->BuildSmbiosTableEx ( - Generator, - TableFactoryProtocol, - SmbiosTableInfo, - CfgMgrProtocol, - &SmbiosTable, - &CmObjToken, - &TableCount - ); + SmbiosTable = NULL; + CmObjToken = NULL; + TableCount = 0; + Status = Generator->BuildSmbiosTableEx ( + Generator, + TableFactoryProtocol, + SmbiosTableInfo, + CfgMgrProtocol, + &SmbiosTable, + &CmObjToken, + &TableCount + ); if (EFI_ERROR (Status)) { DEBUG (( DEBUG_ERROR,