]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Udp6Dxe/Udp6Main.c
BaseTools: replace a dict with a set
[mirror_edk2.git] / NetworkPkg / Udp6Dxe / Udp6Main.c
index f3e99255f953cd6aeee284ed6994739df529143d..e9d94dd00c21af2ebc05dbca3e57f379a70cac3b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Contains all EFI_UDP6_PROTOCOL interfaces.\r
 \r
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2018, 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
@@ -351,6 +351,9 @@ Udp6Groups (
 \r
   Instance = UDP6_INSTANCE_DATA_FROM_THIS (This);\r
   if (!Instance->Configured) {\r
+    if (McastIp != NULL) {\r
+      FreePool (McastIp);\r
+    }\r
     return EFI_NOT_STARTED;\r
   }\r
 \r
@@ -378,7 +381,10 @@ Udp6Groups (
     Status = NetMapInsertTail (&Instance->McastIps, (VOID *) McastIp, NULL);\r
   } else {\r
 \r
-    NetMapIterate (&Instance->McastIps, Udp6LeaveGroup, MulticastAddress);\r
+    Status = NetMapIterate (&Instance->McastIps, Udp6LeaveGroup, MulticastAddress);\r
+    if ((MulticastAddress != NULL) && (Status == EFI_ABORTED)) {\r
+      Status = EFI_SUCCESS;\r
+    } \r
   }\r
 \r
 ON_EXIT:\r
@@ -525,6 +531,11 @@ Udp6Transmit (
 \r
   Udp6Header = (EFI_UDP_HEADER *) NetbufAllocSpace (Packet, UDP6_HEADER_SIZE, TRUE);\r
   ASSERT (Udp6Header != NULL);\r
+  if (Udp6Header == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto ON_EXIT;\r
+  }\r
+  \r
   ConfigData = &Instance->ConfigData;\r
 \r
   //\r
@@ -577,7 +588,7 @@ Udp6Transmit (
         //\r
         // If the calculated checksum is 0, fill the Checksum field with all ones.\r
         //\r
-        Udp6Header->Checksum = 0XFFFF;\r
+        Udp6Header->Checksum = 0xffff;\r
       }\r
     } else {\r
       //\r