]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/IpSecDxe/IpSecConfigImpl.c
NetworkPkg: Fix IpSec run into infinite loop issue in some case
[mirror_edk2.git] / NetworkPkg / IpSecDxe / IpSecConfigImpl.c
index 6eabfe45dee804f98511a7bb4985c5d9025945dc..bd49245190bd330e8221eea8cec73daa1b5e0c12 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   The implementation of IPSEC_CONFIG_PROTOCOL.\r
 \r
-  Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2015, 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
@@ -1199,6 +1199,9 @@ SetSpdEntry (
             (EFI_IPSEC_CONFIG_SELECTOR *) &SpdData->SaId[Index],\r
             (EFI_IPSEC_CONFIG_SELECTOR *) SadEntry->Id\r
             )) {\r
+        if (SadEntry->Data->SpdEntry != NULL) {  \r
+          RemoveEntryList (&SadEntry->BySpd);\r
+        }\r
         InsertTailList (&SpdEntry->Data->Sas, &SadEntry->BySpd);\r
         SadEntry->Data->SpdEntry = SpdEntry;\r
         DuplicateSpdSelector (\r