From 6fe61ba7c81afeec567f98a860e061b428dedb14 Mon Sep 17 00:00:00 2001 From: Thomas Cuyckens Date: Thu, 17 Sep 2026 17:08:01 +0200 Subject: [PATCH] [mle] fix incorrect error code for malformed CSL Timeout TLV (#13610) The `default:` arm for `Tlv::Find()` set `error` to `kErrorNone` instead of `kErrorParse` when the TLV was malformed, unlike every other TLV parsed in this function. Because `LogProcessError()` only logs a warning when the error is non-zero, a malformed CSL Timeout TLV (e.g. a truncated value) was silently dropped with no diagnostic, instead of being logged as a parse error like other malformed TLVs in a Child Update Request. --- src/core/thread/mle_ftd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/thread/mle_ftd.cpp b/src/core/thread/mle_ftd.cpp index 4fe922518..1686b30aa 100644 --- a/src/core/thread/mle_ftd.cpp +++ b/src/core/thread/mle_ftd.cpp @@ -2355,7 +2355,7 @@ void Mle::HandleChildUpdateRequestOnParent(RxInfo &aRxInfo) case kErrorNotFound: break; default: - ExitNow(error = kErrorNone); + ExitNow(error = kErrorParse); } switch (Tlv::Find(aRxInfo.mMessage, cslChannelTlvValue))