/** @file\r
Contains all EFI_UDP6_PROTOCOL interfaces.\r
\r
- Copyright (c) 2009 - 2010, 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
//\r
// Cancel all the user tokens.\r
//\r
- Status = Instance->Udp6Proto.Cancel (&Instance->Udp6Proto, NULL);\r
+ Instance->Udp6Proto.Cancel (&Instance->Udp6Proto, NULL);\r
\r
//\r
// Remove the buffered RxData for this instance.\r
ASSERT (IsListEmpty (&Instance->DeliveredDgramQue));\r
}\r
\r
- Status = Udp6SetVariableData (Instance->Udp6Service);\r
-\r
ON_EXIT:\r
\r
gBS->RestoreTPL (OldTpl);\r
\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
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
\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
//\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