@param[out] OptionPoint The array that contains the DHCP options. Caller\r
should free it.\r
\r
+ @retval EFI_NOT_FOUND Cannot find any option.\r
@retval EFI_OUT_OF_RESOURCES Failed to allocate memory to parse the packet.\r
@retval EFI_INVALID_PARAMETER The options are mal-formated\r
@retval EFI_SUCCESS The options are parsed into OptionPoint\r
Status = DhcpIterateOptions (Packet, DhcpFillOption, &Context);\r
\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePool (Options);\r
+ FreePool (Options);\r
goto ON_EXIT;\r
}\r
\r
*OptionPoint = Options;\r
\r
ON_EXIT:\r
- gBS->FreePool (OptCount);\r
+ FreePool (OptCount);\r
return Status;\r
}\r
\r
if (EFI_ERROR (Status) || (Count == 0)) {\r
return Status;\r
}\r
+ ASSERT (AllOption != NULL);\r
\r
Updated = FALSE;\r
ZeroMem (&Parameter, sizeof (Parameter));\r
\r
for (Index = 0; Index < Count; Index++) {\r
Option = &AllOption[Index];\r
- ASSERT (Option != NULL);\r
\r
//\r
// Find the format of the option then validate it.\r
}\r
\r
if (Updated && (Para != NULL)) {\r
- if ((*Para = AllocatePool (sizeof (DHCP_PARAMETER))) == NULL) {\r
+ *Para = AllocateCopyPool (sizeof (DHCP_PARAMETER), &Parameter);\r
+ if (*Para == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
goto ON_EXIT;\r
}\r
-\r
- CopyMem (*Para, &Parameter, sizeof (**Para));\r
}\r
\r
ON_EXIT:\r
- gBS->FreePool (AllOption);\r
+ FreePool (AllOption);\r
return Status;\r
}\r
\r
if (EFI_ERROR (Status)) {\r
goto ON_ERROR;\r
}\r
- ASSERT (SeedOptions != NULL);\r
\r
- for (Index = 0; Index < (UINT32) Count; Index++) {\r
- Mark[SeedOptions[Index].Tag] = SeedOptions[Index];\r
+ if (SeedOptions != NULL) {\r
+ for (Index = 0; Index < (UINT32) Count; Index++) {\r
+ Mark[SeedOptions[Index].Tag] = SeedOptions[Index];\r
+ }\r
}\r
\r
//\r
\r
ON_ERROR:\r
if (SeedOptions != NULL) {\r
- gBS->FreePool (SeedOptions);\r
+ FreePool (SeedOptions);\r
}\r
\r
- gBS->FreePool (Mark);\r
+ FreePool (Mark);\r
return Status;\r
}\r