/** @file\r
UEFI Component Name(2) protocol implementation for Dhcp6 driver.\r
\r
- Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
{\r
EFI_STATUS Status;\r
EFI_DHCP6_MODE_DATA Dhcp6ModeData;\r
- CHAR16 HandleName[64];\r
+ CHAR16 *HandleName;\r
\r
if (Dhcp6 == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if (Dhcp6ModeData.Ia == NULL) {\r
- UnicodeSPrint (HandleName, sizeof (HandleName), L"DHCPv6 (No configured IA)");\r
+ HandleName = L"DHCPv6 (No configured IA)";\r
} else {\r
- StrnCpy (HandleName, mDhcp6ControllerName[Dhcp6ModeData.Ia->State], sizeof (HandleName) / sizeof (CHAR16) - 1);\r
+ if (Dhcp6ModeData.Ia->State > Dhcp6Rebinding) {\r
+ return EFI_DEVICE_ERROR;\r
+ }\r
+ HandleName = mDhcp6ControllerName[Dhcp6ModeData.Ia->State];\r
}\r
- \r
+\r
+ if (Dhcp6ModeData.Ia != NULL) {\r
+ FreePool (Dhcp6ModeData.Ia);\r
+ }\r
+ if (Dhcp6ModeData.ClientId != NULL) {\r
+ FreePool (Dhcp6ModeData.ClientId);\r
+ }\r
+\r
Status = AddUnicodeString2 (\r
"eng",\r
gDhcp6ComponentName.SupportedLanguages,\r