Instance->Signature = ARP_INSTANCE_DATA_SIGNATURE;\r
Instance->ArpService = ArpService;\r
\r
- CopyMem (&Instance->ArpProto, &mEfiArpProtocolTemplate, sizeof (ARP_SERVICE_DATA));\r
+ CopyMem (&Instance->ArpProto, &mEfiArpProtocolTemplate, sizeof (Instance->ArpProto));\r
\r
Instance->Configured = FALSE;\r
Instance->Destroyed = FALSE;\r
}\r
}\r
\r
- NetListRemoveEntry (&CacheEntry->List);\r
+ if (!IsListEmpty (&CacheEntry->List)) {\r
+ NetListRemoveEntry (&CacheEntry->List);\r
+ }\r
\r
//\r
// Fill the addresses into the CacheEntry.\r
//\r
// Save the configuration.\r
//\r
- CopyMem (OldConfigData, ConfigData, sizeof (EFI_ARP_CONFIG_DATA));\r
+ CopyMem (OldConfigData, ConfigData, sizeof (*OldConfigData));\r
\r
OldConfigData->StationAddress = NetAllocatePool (OldConfigData->SwAddressLength);\r
if (OldConfigData->StationAddress == NULL) {\r