}\r
\r
TokenEntry->PacketToLive = Token->RetryInterval;\r
- TokenEntry->QueryHostName = HostName;\r
TokenEntry->Token = Token;\r
-\r
+ TokenEntry->QueryHostName = AllocateZeroPool (StrSize (HostName));\r
+ if (TokenEntry->QueryHostName == NULL) {\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ goto ON_EXIT;\r
+ }\r
+ \r
+ CopyMem (TokenEntry->QueryHostName, HostName, StrSize (HostName));\r
+ \r
//\r
// Construct QName.\r
//\r
// Construct DNS Query Packet.\r
//\r
Status = ConstructDNSQuery (Instance, QueryName, DNS_TYPE_A, DNS_CLASS_INET, &Packet);\r
- if (EFI_ERROR (Status)) {\r
- if (TokenEntry != NULL) {\r
- FreePool (TokenEntry);\r
- }\r
- \r
+ if (EFI_ERROR (Status)) { \r
goto ON_EXIT;\r
}\r
\r
//\r
Status = NetMapInsertTail (&Instance->Dns4TxTokens, TokenEntry, Packet);\r
if (EFI_ERROR (Status)) {\r
- if (TokenEntry != NULL) {\r
- FreePool (TokenEntry);\r
- }\r
- \r
- NetbufFree (Packet);\r
- \r
goto ON_EXIT;\r
}\r
\r
Status = DoDnsQuery (Instance, Packet);\r
if (EFI_ERROR (Status)) {\r
Dns4RemoveTokenEntry (&Instance->Dns4TxTokens, TokenEntry);\r
+ }\r
+ \r
+ON_EXIT:\r
\r
+ if (EFI_ERROR (Status)) {\r
if (TokenEntry != NULL) {\r
+ if (TokenEntry->QueryHostName != NULL) {\r
+ FreePool (TokenEntry->QueryHostName);\r
+ }\r
+ \r
FreePool (TokenEntry);\r
}\r
\r
- NetbufFree (Packet);\r
+ if (Packet != NULL) {\r
+ NetbufFree (Packet);\r
+ }\r
}\r
\r
-ON_EXIT:\r
if (QueryName != NULL) {\r
FreePool (QueryName);\r
}\r
}\r
\r
TokenEntry->PacketToLive = Token->RetryInterval;\r
- TokenEntry->QueryHostName = HostName;\r
TokenEntry->Token = Token;\r
-\r
+ TokenEntry->QueryHostName = AllocateZeroPool (StrSize (HostName));\r
+ if (TokenEntry->QueryHostName == NULL) {\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ goto ON_EXIT;\r
+ }\r
+ \r
+ CopyMem (TokenEntry->QueryHostName, HostName, StrSize (HostName));\r
\r
//\r
// Construct QName.\r
//\r
Status = ConstructDNSQuery (Instance, QueryName, DNS_TYPE_AAAA, DNS_CLASS_INET, &Packet);\r
if (EFI_ERROR (Status)) {\r
- if (TokenEntry != NULL) {\r
- FreePool (TokenEntry);\r
- }\r
- \r
goto ON_EXIT;\r
}\r
\r
//\r
Status = NetMapInsertTail (&Instance->Dns6TxTokens, TokenEntry, Packet);\r
if (EFI_ERROR (Status)) {\r
- if (TokenEntry != NULL) {\r
- FreePool (TokenEntry);\r
- }\r
- \r
- NetbufFree (Packet);\r
- \r
goto ON_EXIT;\r
}\r
\r
Status = DoDnsQuery (Instance, Packet);\r
if (EFI_ERROR (Status)) {\r
Dns6RemoveTokenEntry (&Instance->Dns6TxTokens, TokenEntry);\r
- \r
+ }\r
+ \r
+ON_EXIT:\r
+\r
+ if (EFI_ERROR (Status)) {\r
if (TokenEntry != NULL) {\r
+ if (TokenEntry->QueryHostName != NULL) {\r
+ FreePool (TokenEntry->QueryHostName);\r
+ }\r
+ \r
FreePool (TokenEntry);\r
}\r
\r
- NetbufFree (Packet);\r
+ if (Packet != NULL) {\r
+ NetbufFree (Packet);\r
+ }\r
}\r
\r
-ON_EXIT:\r
if (QueryName != NULL) {\r
FreePool (QueryName);\r
}\r