From 6170948e27d897388908494873a661223f44de6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Duda?= Date: Thu, 14 Feb 2019 17:54:18 +0100 Subject: [PATCH] [mpl] fix inserting mechanism and timer handling (#3587) --- src/core/net/ip6_mpl.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core/net/ip6_mpl.cpp b/src/core/net/ip6_mpl.cpp index ad316e9ed..b4ee3b39c 100644 --- a/src/core/net/ip6_mpl.cpp +++ b/src/core/net/ip6_mpl.cpp @@ -209,7 +209,7 @@ otError Mpl::UpdateSeedSet(uint16_t aSeedId, uint8_t aSequence) if (evict > insert) { assert(insert >= mSeedSet); - memmove(insert, insert + 1, static_cast(evict - insert) * sizeof(MplSeedEntry)); + memmove(insert + 1, insert, static_cast(evict - insert) * sizeof(MplSeedEntry)); } else if (evict < insert) { @@ -221,7 +221,11 @@ otError Mpl::UpdateSeedSet(uint16_t aSeedId, uint8_t aSequence) insert->SetSeedId(aSeedId); insert->SetSequence(aSequence); insert->SetLifetime(kSeedEntryLifetime); - mSeedSetTimer.Start(kSeedEntryLifetimeDt); + + if (!mSeedSetTimer.IsRunning()) + { + mSeedSetTimer.Start(kSeedEntryLifetimeDt); + } exit: return error;