From 14f3f8821409b60d1a570a683d30c2223eccab64 Mon Sep 17 00:00:00 2001 From: Jeff Fan Date: Wed, 15 Apr 2015 06:55:12 +0000 Subject: [PATCH] SourceLevelDebugPkg: Avoid NULL pointer reference. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan Reviewed-by: Ruiyu Ni git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17183 6f19259b-4bc3-4df7-8a09-765794883524 --- .../SecPeiDebugAgent/SecPeiDebugAgentLib.c | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDebugAgentLib.c b/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDebugAgentLib.c index ec389c7e8b..f71ddadb1a 100644 --- a/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDebugAgentLib.c +++ b/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDebugAgentLib.c @@ -525,22 +525,23 @@ InitializeDebugAgent ( if (Mailbox == NULL) { DEBUG ((EFI_D_ERROR, "DebugAgent: Failed to allocate memory!\n")); CpuDeadLoop (); + } else { + MailboxLocation = (UINT64)(UINTN)Mailbox; + MailboxLocationPointer = BuildGuidDataHob ( + &gEfiDebugAgentGuid, + &MailboxLocation, + sizeof (UINT64) + ); + // + // Initialize Debug Timer hardware and save its frequency + // + InitializeDebugTimer (&DebugTimerFrequency); + UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_DEBUG_TIMER_FREQUENCY, DebugTimerFrequency); + // + // Update IDT entry to save the location pointer saved mailbox pointer + // + SetLocationSavedMailboxPointerInIdtEntry (MailboxLocationPointer); } - MailboxLocation = (UINT64)(UINTN)Mailbox; - MailboxLocationPointer = BuildGuidDataHob ( - &gEfiDebugAgentGuid, - &MailboxLocation, - sizeof (UINT64) - ); - // - // Initialize Debug Timer hardware and save its frequency - // - InitializeDebugTimer (&DebugTimerFrequency); - UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_DEBUG_TIMER_FREQUENCY, DebugTimerFrequency); - // - // Update IDT entry to save the location pointer saved mailbox pointer - // - SetLocationSavedMailboxPointerInIdtEntry (MailboxLocationPointer); // // Save init arch type when debug agent initialized // -- 2.39.2