From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=jiaxin.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3D7632242384F for ; Thu, 1 Mar 2018 01:32:25 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Mar 2018 01:38:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,407,1515484800"; d="scan'208";a="204681811" Received: from ldu-mobl.ccr.corp.intel.com (HELO jiaxinwu-MOBL2.ccr.corp.intel.com) ([10.254.212.250]) by orsmga005.jf.intel.com with ESMTP; 01 Mar 2018 01:38:31 -0800 From: Jiaxin Wu To: edk2-devel@lists.01.org Cc: Wang Fan , Fu Siyuan , Ye Ting Date: Thu, 1 Mar 2018 17:38:27 +0800 Message-Id: <20180301093828.16440-1-jiaxin.wu@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 Subject: [Patch] NetworkPkg/Udp6Dxe: Fix the failure to leave one multicast group address. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Mar 2018 09:32:27 -0000 The issue was enrolled by the commit of ceec3638. One of the change in the commit was to return the status from NetMapIterate in Udp6Groups function. But it should not return EFI_ABORTED directly in case McastIp is not NULL, which means to terminate the iteration and leave the McastIp successfully. Cc: Wang Fan Cc: Fu Siyuan Cc: Ye Ting Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiaxin Wu --- NetworkPkg/Udp6Dxe/Udp6Main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NetworkPkg/Udp6Dxe/Udp6Main.c b/NetworkPkg/Udp6Dxe/Udp6Main.c index 1d7f0acbc7..e9d94dd00c 100644 --- a/NetworkPkg/Udp6Dxe/Udp6Main.c +++ b/NetworkPkg/Udp6Dxe/Udp6Main.c @@ -380,10 +380,13 @@ Udp6Groups ( Status = NetMapInsertTail (&Instance->McastIps, (VOID *) McastIp, NULL); } else { Status = NetMapIterate (&Instance->McastIps, Udp6LeaveGroup, MulticastAddress); + if ((MulticastAddress != NULL) && (Status == EFI_ABORTED)) { + Status = EFI_SUCCESS; + } } ON_EXIT: gBS->RestoreTPL (OldTpl); -- 2.16.2.windows.1