diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index fa685121d..ee6eb3abc 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -358,6 +358,9 @@ otError Ip6::RemoveMplOption(Message &aMessage) switch (option.GetType()) { case OptionMpl::kType: + // if multiple MPL options exist, discard packet + VerifyOrExit(mplOffset == 0, error = OT_ERROR_PARSE); + mplOffset = offset; mplLength = option.GetLength();