From 8f10a456e18f7215fc4095cbb7685e09d6046752 Mon Sep 17 00:00:00 2001 From: Buke Po Date: Tue, 18 Apr 2017 20:33:29 +0800 Subject: [PATCH] prevent from subscribing multicast address twice (#1609) --- src/core/net/netif.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/core/net/netif.cpp b/src/core/net/netif.cpp index 717c78148..c8a5771de 100644 --- a/src/core/net/netif.cpp +++ b/src/core/net/netif.cpp @@ -191,15 +191,9 @@ ThreadError Netif::SubscribeExternalMulticast(const Address &aAddress) NetifMulticastAddress *entry; size_t num = sizeof(mExtMulticastAddresses) / sizeof(mExtMulticastAddresses[0]); - for (entry = mMulticastAddresses; entry; entry = entry->GetNext()) + if (IsMulticastSubscribed(aAddress)) { - if (memcmp(&entry->mAddress, &aAddress, sizeof(otIp6Address)) == 0) - { - VerifyOrExit((entry >= &mExtMulticastAddresses[0]) && (entry < &mExtMulticastAddresses[num]), - error = kThreadError_InvalidArgs); - - ExitNow(error = kThreadError_Already); - } + ExitNow(error = kThreadError_Already); } // Find an available entry in the `mExtMulticastAddresses` array.