]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
MdeModulePkg/UefiHiiLib:Fix incorrect comparison expression
[mirror_edk2.git] / MdeModulePkg / Library / PeiReportStatusCodeLib / ReportStatusCodeLib.c
index 896c286834ae9bc3c28b9e86529084fee7e1881c..d41d4e981df326342fe954ba3f723c48a0513b61 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Instance of Report Status Code Library for PEI Phase.\r
 \r
-  Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -458,7 +458,7 @@ ReportStatusCodeEx (
   )\r
 {\r
   EFI_STATUS_CODE_DATA  *StatusCodeData;\r
-  UINT64                Buffer[MAX_EXTENDED_DATA_SIZE / sizeof (UINT64)];\r
+  UINT64                Buffer[(MAX_EXTENDED_DATA_SIZE / sizeof (UINT64)) + 1];\r
 \r
   //\r
   // If ExtendedData is NULL and ExtendedDataSize is not zero, then ASSERT().\r
@@ -470,6 +470,11 @@ ReportStatusCodeEx (
   ASSERT (!((ExtendedData != NULL) && (ExtendedDataSize == 0)));\r
 \r
   if (ExtendedDataSize > (MAX_EXTENDED_DATA_SIZE - sizeof (EFI_STATUS_CODE_DATA))) {\r
+    //\r
+    // The local variable Buffer not large enough to hold the extended data associated\r
+    // with the status code being reported.\r
+    //\r
+    DEBUG ((EFI_D_ERROR, "Status code extended data is too large to be reported!\n"));\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
   StatusCodeData = (EFI_STATUS_CODE_DATA  *) Buffer;\r