diff --git a/src/core/net/udp6.cpp b/src/core/net/udp6.cpp index 1b38cc43d..791305949 100644 --- a/src/core/net/udp6.cpp +++ b/src/core/net/udp6.cpp @@ -216,7 +216,10 @@ otError Udp::HandleMessage(Message &aMessage, MessageInfo &aMessageInfo) checksum = Ip6::ComputePseudoheaderChecksum(aMessageInfo.GetPeerAddr(), aMessageInfo.GetSockAddr(), payloadLength, kProtoUdp); checksum = aMessage.UpdateChecksum(checksum, aMessage.GetOffset(), payloadLength); + +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION VerifyOrExit(checksum == 0xffff, error = OT_ERROR_DROP); +#endif VerifyOrExit(aMessage.Read(aMessage.GetOffset(), sizeof(udpHeader), &udpHeader) == sizeof(udpHeader), error = OT_ERROR_PARSE);