/** @file\r
Instance of Report Status Code Library for PEI Phase.\r
\r
- Copyright (c) 2006 - 2009, Intel Corporation<BR>\r
- All rights reserved. This program and the accompanying materials\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
http://opensource.org/licenses/bsd-license.php\r
)\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
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
- StatusCodeData->HeaderSize = sizeof (EFI_STATUS_CODE_DATA);\r
- StatusCodeData->Size = (UINT16)ExtendedDataSize;\r
+ StatusCodeData = (EFI_STATUS_CODE_DATA *) Buffer;\r
+ StatusCodeData->HeaderSize = (UINT16) sizeof (EFI_STATUS_CODE_DATA);\r
+ StatusCodeData->Size = (UINT16) ExtendedDataSize;\r
if (ExtendedDataGuid == NULL) {\r
ExtendedDataGuid = &gEfiStatusCodeSpecificDataGuid;\r
}\r