summaryrefslogtreecommitdiff
path: root/MdePkg/Library
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2007-04-06 06:36:47 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2007-04-06 06:36:47 +0000
commitabb234751e4fbe58afc5e7c7e203db2a93aac0f8 (patch)
tree4530cb4337a406438d2eeeab28e29399ec2d6a25 /MdePkg/Library
parent18fda0cec0c1bc6b95e15c34dc355457d9a4437a (diff)
downloadedk2-platforms-abb234751e4fbe58afc5e7c7e203db2a93aac0f8.tar.xz
1) Initialize gBS, gST, gImageHandle in UefiBootServicesTableLib.c to NULL
2) Add DxeCore infix to the module local variable gBS, gST, gRT, gDS in DxeMain.c. This is to solve the name conflict with UefiBootServicesTableLib which is defined in MDE Library Spec. 3) Add in check for gBS and gST in UefiDebugLibConOut/DebugLib.c and UefiDebugLibStdErr/DebugLib.c and MdePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c. If they are not initialized, the API will just return with a error message. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2546 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library')
-rw-r--r--MdePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c9
-rw-r--r--MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.c9
-rw-r--r--MdePkg/Library/UefiDebugLibConOut/DebugLib.c6
-rw-r--r--MdePkg/Library/UefiDebugLibStdErr/DebugLib.c6
4 files changed, 19 insertions, 11 deletions
diff --git a/MdePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c b/MdePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
index 4e140c61c8..28649f72cc 100644
--- a/MdePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
+++ b/MdePkg/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c
@@ -1,7 +1,7 @@
/** @file
Report Status Code Library for DXE Phase.
- Copyright (c) 2006, Intel Corporation<BR>
+ Copyright (c) 2006 - 2007, Intel Corporation<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -57,6 +57,9 @@ InternalReportStatusCode (
// in the handle database.
//
if (gStatusCode == NULL) {
+ if (gBS == NULL) {
+ return EFI_UNSUPPORTED;
+ }
Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID **)&gStatusCode);
if (EFI_ERROR (Status) || gStatusCode == NULL) {
return EFI_UNSUPPORTED;
@@ -476,6 +479,10 @@ ReportStatusCodeEx (
ASSERT (!((ExtendedData == NULL) && (ExtendedDataSize != 0)));
ASSERT (!((ExtendedData != NULL) && (ExtendedDataSize == 0)));
+ if (gBS == NULL) {
+ return EFI_UNSUPPORTED;
+ }
+
//
// Allocate space for the Status Code Header and its buffer
//
diff --git a/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.c b/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.c
index 0db4707e29..26f62f6c95 100644
--- a/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.c
+++ b/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.c
@@ -1,7 +1,7 @@
/** @file
UEFI Boot Services Table Library.
- Copyright (c) 2006, Intel Corporation<BR>
+ Copyright (c) 2006 - 2007, Intel Corporation<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -14,9 +14,9 @@
**/
-EFI_HANDLE gImageHandle;
-EFI_SYSTEM_TABLE *gST;
-EFI_BOOT_SERVICES *gBS;
+EFI_HANDLE gImageHandle = NULL;
+EFI_SYSTEM_TABLE *gST = NULL;
+EFI_BOOT_SERVICES *gBS = NULL;
/**
The constructor function caches the pointer of Boot Services Table.
@@ -43,6 +43,7 @@ UefiBootServicesTableLibConstructor (
// Cache the Image Handle
//
gImageHandle = ImageHandle;
+ ASSERT (gImageHandle != NULL);
//
// Cache pointer to the EFI System Table
diff --git a/MdePkg/Library/UefiDebugLibConOut/DebugLib.c b/MdePkg/Library/UefiDebugLibConOut/DebugLib.c
index 3fe3b6e043..b3e83894c8 100644
--- a/MdePkg/Library/UefiDebugLibConOut/DebugLib.c
+++ b/MdePkg/Library/UefiDebugLibConOut/DebugLib.c
@@ -1,7 +1,7 @@
/** @file
UEFI Debug Library that uses PrintLib to send messages to CONOUT.
- Copyright (c) 2006, Intel Corporation<BR>
+ Copyright (c) 2006 - 2007, Intel Corporation<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -65,7 +65,7 @@ DebugPrint (
//
// Send the print string to the Console Output device
//
- if (gST->ConOut != NULL) {
+ if ((gST != NULL) && (gST->ConOut != NULL)) {
gST->ConOut->OutputString (gST->ConOut, Buffer);
}
}
@@ -112,7 +112,7 @@ DebugAssert (
//
// Send the print string to the Console Output device
//
- if (gST->ConOut != NULL) {
+ if ((gST != NULL) && (gST->ConOut != NULL)) {
gST->ConOut->OutputString (gST->ConOut, Buffer);
}
diff --git a/MdePkg/Library/UefiDebugLibStdErr/DebugLib.c b/MdePkg/Library/UefiDebugLibStdErr/DebugLib.c
index 9338217762..d2fb46e23f 100644
--- a/MdePkg/Library/UefiDebugLibStdErr/DebugLib.c
+++ b/MdePkg/Library/UefiDebugLibStdErr/DebugLib.c
@@ -1,7 +1,7 @@
/** @file
UEFI Debug Library that uses PrintLib to send messages to STDERR.
- Copyright (c) 2006, Intel Corporation<BR>
+ Copyright (c) 2006 - 2007, Intel Corporation<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -65,7 +65,7 @@ DebugPrint (
//
// Send the print string to the Standard Error device
//
- if (gST->StdErr != NULL) {
+ if ((gST != NULL) && (gST->StdErr != NULL)) {
gST->StdErr->OutputString (gST->StdErr, Buffer);
}
}
@@ -112,7 +112,7 @@ DebugAssert (
//
// Send the print string to the Standard Error device
//
- if (gST->StdErr != NULL) {
+ if ((gST != NULL) && (gST->StdErr != NULL)) {
gST->StdErr->OutputString (gST->StdErr, Buffer);
}