// | 5 | 32 | 6 | NameStrLen*4 | 6 | DevicePathStrLen | 1 |\r
//\r
BufferSize = (5 + 32 + 6 + NameStrLen * 4 + 6 + DevicePathSize * 2 + 1) * sizeof (CHAR16);\r
- if (*StrBufferLen < BufferSize) {\r
+ if ((*StrBufferLen == 0) || *StrBufferLen < BufferSize) {\r
*StrBufferLen = BufferSize;\r
return EFI_BUFFER_TOO_SMALL;\r
}\r
PcdDb = IsPeiDb ? ((UINT8 *) &mPcdDatabase->PeiDb) : ((UINT8 *) &mPcdDatabase->DxeDb);\r
\r
StringTable = (UINT16 *) (IsPeiDb ? &mPcdDatabase->PeiDb.Init.StringTable[0] :\r
- &mPcdDatabase->DxeDb.Init.StringTable[0]);\r
+ &mPcdDatabase->DxeDb.Init.StringTable[0]);\r
\r
InternalData = PcdDb + Offset;\r
\r
}\r
}\r
\r
- GuidTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.GuidTable :\r
- mPcdDatabase->DxeDb.Init.GuidTable;\r
+ GuidTable = (EFI_GUID *) (IsPeiDb ? &mPcdDatabase->PeiDb.Init.GuidTable[0] :\r
+ &mPcdDatabase->DxeDb.Init.GuidTable[0]);\r
\r
VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);\r
\r
// Check the driver DriverImage's order number in mapping database\r
//\r
DriverImageNO = 0;\r
- ASSERT (mSelectedCtrIndex < MAX_CHOICE_NUM);\r
CheckMapping (\r
mControllerDevicePathProtocol[mSelectedCtrIndex],\r
LoadedImageDevicePath,\r
// Following code will be run if user select 'commint changes' in third page\r
// user enter 'Commit Changes' to save the mapping database\r
//\r
- ASSERT (mSelectedCtrIndex < MAX_CHOICE_NUM);\r
DeleteDriverImage (mControllerDevicePathProtocol[mSelectedCtrIndex], NULL, &mMappingDataBase);\r
for (SelectedDriverImageNum = 0; SelectedDriverImageNum < mSelectedDriverImageNum; SelectedDriverImageNum++) {\r
//\r