git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10893
6f19259b-4bc3-4df7-8a09-
765794883524
{\r
UINT8 Index;\r
UINT8 *OpCode;\r
{\r
UINT8 Index;\r
UINT8 *OpCode;\r
\r
OpCode = (UINT8 *) (Packet->Cdb);\r
\r
OpCode = (UINT8 *) (Packet->Cdb);\r
+ ArrayLen = (UINT8) (sizeof (gSupportedATAPICommands) / sizeof (gSupportedATAPICommands[0]));\r
- for (Index = 0; CompareMem (&gSupportedATAPICommands[Index], &gEndTable, sizeof (SCSI_COMMAND_SET)); Index++) {\r
+ for (Index = 0; (Index < ArrayLen) && (CompareMem (&gSupportedATAPICommands[Index], &gEndTable, sizeof (SCSI_COMMAND_SET)) != 0); Index++) {\r
\r
if (*OpCode == gSupportedATAPICommands[Index].OpCode) {\r
//\r
\r
if (*OpCode == gSupportedATAPICommands[Index].OpCode) {\r
//\r
{\r
UINT8 Index;\r
UINT8 *OpCode;\r
{\r
UINT8 Index;\r
UINT8 *OpCode;\r
\r
OpCode = (UINT8 *) (Packet->Cdb);\r
\r
OpCode = (UINT8 *) (Packet->Cdb);\r
+ ArrayLen = (UINT8) (sizeof (gSupportedATAPICommands) / sizeof (gSupportedATAPICommands[0]));\r
- for (Index = 0; CompareMem (&gSupportedATAPICommands[Index], &gEndTable, sizeof (SCSI_COMMAND_SET)); Index++) {\r
+ for (Index = 0; (Index < ArrayLen) && (CompareMem (&gSupportedATAPICommands[Index], &gEndTable, sizeof (SCSI_COMMAND_SET)) != 0); Index++) {\r
\r
if (*OpCode == gSupportedATAPICommands[Index].OpCode) {\r
//\r
\r
if (*OpCode == gSupportedATAPICommands[Index].OpCode) {\r
//\r
// Initialize the hardware\r
//\r
GraphicsOutput->SetMode (GraphicsOutput, 0);\r
// Initialize the hardware\r
//\r
GraphicsOutput->SetMode (GraphicsOutput, 0);\r
+ ASSERT (Private->GraphicsOutput.Mode->Mode < CIRRUS_LOGIC_5430_MODE_COUNT);\r
DrawLogo (\r
Private,\r
Private->ModeData[Private->GraphicsOutput.Mode->Mode].HorizontalResolution,\r
DrawLogo (\r
Private,\r
Private->ModeData[Private->GraphicsOutput.Mode->Mode].HorizontalResolution,\r
DbPtr->MCastFilterCnt = MAX_MCAST_ADDRESS_CNT;\r
\r
DbPtr->TxBufCnt = TX_BUFFER_COUNT;\r
DbPtr->MCastFilterCnt = MAX_MCAST_ADDRESS_CNT;\r
\r
DbPtr->TxBufCnt = TX_BUFFER_COUNT;\r
- DbPtr->TxBufSize = sizeof (TxCB);\r
+ DbPtr->TxBufSize = (UINT16) sizeof (TxCB);\r
DbPtr->RxBufCnt = RX_BUFFER_COUNT;\r
DbPtr->RxBufCnt = RX_BUFFER_COUNT;\r
- DbPtr->RxBufSize = sizeof (RxFD);\r
+ DbPtr->RxBufSize = (UINT16) sizeof (RxFD);\r
\r
DbPtr->IFtype = PXE_IFTYPE_ETHERNET;\r
DbPtr->SupportedDuplexModes = PXE_DUPLEX_ENABLE_FULL_SUPPORTED |\r
\r
DbPtr->IFtype = PXE_IFTYPE_ETHERNET;\r
DbPtr->SupportedDuplexModes = PXE_DUPLEX_ENABLE_FULL_SUPPORTED |\r
//\r
// We already filled in 2 UINT32s.\r
//\r
//\r
// We already filled in 2 UINT32s.\r
//\r
- CdbPtr->DBsize = sizeof (UINT32) * 2;\r
+ CdbPtr->DBsize = (UINT16) (sizeof (UINT32) * 2);\r
\r
//\r
// will claim any hanging free CBs\r
\r
//\r
// will claim any hanging free CBs\r
if (AdapterInfo->xmit_done_head == AdapterInfo->xmit_done_tail) {\r
CdbPtr->StatFlags |= PXE_STATFLAGS_GET_STATUS_TXBUF_QUEUE_EMPTY;\r
} else {\r
if (AdapterInfo->xmit_done_head == AdapterInfo->xmit_done_tail) {\r
CdbPtr->StatFlags |= PXE_STATFLAGS_GET_STATUS_TXBUF_QUEUE_EMPTY;\r
} else {\r
- for (Index = 0; NumEntries >= sizeof (UINT64); Index++, NumEntries -= sizeof (UINT64)) {\r
+ for (Index = 0; ((Index < MAX_XMIT_BUFFERS) && (NumEntries >= sizeof (UINT64))); Index++, NumEntries -= sizeof (UINT64)) {\r
if (AdapterInfo->xmit_done_head != AdapterInfo->xmit_done_tail) {\r
DbPtr->TxBuffer[Index] = AdapterInfo->xmit_done[AdapterInfo->xmit_done_head];\r
AdapterInfo->xmit_done_head = next (AdapterInfo->xmit_done_head);\r
if (AdapterInfo->xmit_done_head != AdapterInfo->xmit_done_tail) {\r
DbPtr->TxBuffer[Index] = AdapterInfo->xmit_done[AdapterInfo->xmit_done_head];\r
AdapterInfo->xmit_done_head = next (AdapterInfo->xmit_done_head);\r
// Initialize the !PXE structure\r
//\r
PxePtr->Signature = PXE_ROMID_SIGNATURE;\r
// Initialize the !PXE structure\r
//\r
PxePtr->Signature = PXE_ROMID_SIGNATURE;\r
- PxePtr->Len = sizeof (PXE_SW_UNDI);\r
+ PxePtr->Len = (UINT8) sizeof (PXE_SW_UNDI);\r
UINT8 my_filter;\r
\r
cmd_ptr = GetFreeCB (AdapterInfo);\r
UINT8 my_filter;\r
\r
cmd_ptr = GetFreeCB (AdapterInfo);\r
- data_ptr = (UINT8 *) (&cmd_ptr->PhysTBDArrayAddres);\r
+ ASSERT (cmd_ptr != NULL);\r
+ data_ptr = (UINT8 *) cmd_ptr + sizeof (struct CB_Header);\r
\r
//\r
// start the config data right after the command header\r
\r
//\r
// start the config data right after the command header\r
eaddrs = (UINT16 *) AdapterInfo->CurrentNodeAddress;\r
\r
cmd_ptr = GetFreeCB (AdapterInfo);\r
eaddrs = (UINT16 *) AdapterInfo->CurrentNodeAddress;\r
\r
cmd_ptr = GetFreeCB (AdapterInfo);\r
- data_ptr = (UINT16 *) (&cmd_ptr->PhysTBDArrayAddres);\r
+ ASSERT (cmd_ptr != NULL);\r
+ data_ptr = (UINT16 *) ((UINT8 *) cmd_ptr +sizeof (struct CB_Header));\r
\r
//\r
// AVOID a bug (?!) here by marking the command already completed.\r
\r
//\r
// AVOID a bug (?!) here by marking the command already completed.\r
\r
tx_ptr_1 = (PXE_CPB_TRANSMIT *) (UINTN) cpb;\r
tx_ptr_f = (PXE_CPB_TRANSMIT_FRAGMENTS *) (UINTN) cpb;\r
\r
tx_ptr_1 = (PXE_CPB_TRANSMIT *) (UINTN) cpb;\r
tx_ptr_f = (PXE_CPB_TRANSMIT_FRAGMENTS *) (UINTN) cpb;\r
\r
//\r
// stop reentrancy here\r
\r
//\r
// stop reentrancy here\r
// in words\r
//\r
AdapterInfo->NVData_Len = eeprom_len = (UINT16) (1 << addr_len);\r
// in words\r
//\r
AdapterInfo->NVData_Len = eeprom_len = (UINT16) (1 << addr_len);\r
- for (Index2 = 0, Index = 0; Index < eeprom_len; Index++) {\r
+ for (Index2 = 0, Index = 0; ((Index2 < PXE_MAC_LENGTH - 1) && (Index < eeprom_len)); Index++) {\r
UINT16 value;\r
value = E100bReadEeprom (AdapterInfo, Index, addr_len);\r
eedata[Index] = value;\r
UINT16 value;\r
value = E100bReadEeprom (AdapterInfo, Index, addr_len);\r
eedata[Index] = value;\r
AdapterInfo->statistics->tx_lost_carrier;\r
\r
if (DBsize > sizeof db) {\r
AdapterInfo->statistics->tx_lost_carrier;\r
\r
if (DBsize > sizeof db) {\r
+ DBsize = (UINT16) sizeof (db);\r
}\r
\r
CopyMem ((VOID *) (UINTN) DBaddr, (VOID *) &db, (UINTN) DBsize);\r
}\r
\r
CopyMem ((VOID *) (UINTN) DBaddr, (VOID *) &db, (UINTN) DBsize);\r
\r
MacAddrNode.Header.Type = MESSAGING_DEVICE_PATH;\r
MacAddrNode.Header.SubType = MSG_MAC_ADDR_DP;\r
\r
MacAddrNode.Header.Type = MESSAGING_DEVICE_PATH;\r
MacAddrNode.Header.SubType = MSG_MAC_ADDR_DP;\r
- MacAddrNode.Header.Length[0] = sizeof (MacAddrNode);\r
+ MacAddrNode.Header.Length[0] = (UINT8) sizeof (MacAddrNode);\r
MacAddrNode.Header.Length[1] = 0;\r
\r
//\r
MacAddrNode.Header.Length[1] = 0;\r
\r
//\r