From 520a0746dc0e7212e22894dfffa7cec5c035f137 Mon Sep 17 00:00:00 2001 From: Jiaxin Wu Date: Thu, 2 Jun 2016 16:23:16 +0800 Subject: [PATCH] NetworkPkg: Remove TokenEntry from Token list before freed TokenEntry should be removed from Token list before freed. Otherwise, invalid TokenEntry will be existed in Token list. Cc: Ye Ting Cc: Zhang Lubo Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiaxin Wu Reviewed-by: Zhang Lubo Reviewed-by: Ye Ting --- NetworkPkg/DnsDxe/DnsProtocol.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/NetworkPkg/DnsDxe/DnsProtocol.c b/NetworkPkg/DnsDxe/DnsProtocol.c index 11009fdc0d..e9101d6644 100644 --- a/NetworkPkg/DnsDxe/DnsProtocol.c +++ b/NetworkPkg/DnsDxe/DnsProtocol.c @@ -493,6 +493,8 @@ Dns4HostNameToIp ( // Status = DoDnsQuery (Instance, Packet); if (EFI_ERROR (Status)) { + Dns4RemoveTokenEntry (&Instance->Dns4TxTokens, TokenEntry); + if (TokenEntry != NULL) { FreePool (TokenEntry); } @@ -675,6 +677,8 @@ Dns4GeneralLookUp ( // Status = DoDnsQuery (Instance, Packet); if (EFI_ERROR (Status)) { + Dns4RemoveTokenEntry (&Instance->Dns4TxTokens, TokenEntry); + if (TokenEntry != NULL) { FreePool (TokenEntry); } @@ -1303,6 +1307,8 @@ Dns6HostNameToIp ( // Status = DoDnsQuery (Instance, Packet); if (EFI_ERROR (Status)) { + Dns6RemoveTokenEntry (&Instance->Dns6TxTokens, TokenEntry); + if (TokenEntry != NULL) { FreePool (TokenEntry); } @@ -1488,6 +1494,8 @@ Dns6GeneralLookUp ( // Status = DoDnsQuery (Instance, Packet); if (EFI_ERROR (Status)) { + Dns6RemoveTokenEntry (&Instance->Dns6TxTokens, TokenEntry); + if (TokenEntry != NULL) { FreePool (TokenEntry); } -- 2.39.2