From a2f783e6d50b5ce67db74ad8be6a61a5f3f83f45 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Tue, 27 May 2025 21:30:41 -0700 Subject: [PATCH] [mac] avoid logging frame that has not been validated (#11532) --- src/core/mac/mac.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index d759dbf8f..9dcfccea4 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -1852,7 +1852,8 @@ void Mac::HandleReceivedFrame(RxFrame *aFrame, Error aError) Address dstaddr; PanId panid; Neighbor *neighbor; - Error error = aError; + Error error = aError; + bool isFrameValidated = false; mCounters.mRxTotal++; @@ -1864,6 +1865,8 @@ void Mac::HandleReceivedFrame(RxFrame *aFrame, Error aError) // the buffer received from the radio. SuccessOrExit(error = aFrame->ValidatePsdu()); + isFrameValidated = true; + IgnoreError(aFrame->GetSrcAddr(srcaddr)); IgnoreError(aFrame->GetDstAddr(dstaddr)); neighbor = !srcaddr.IsNone() ? Get().FindNeighbor(srcaddr) : nullptr; @@ -2099,7 +2102,7 @@ exit: if (error != kErrorNone) { - LogFrameRxFailure(aFrame, error); + LogFrameRxFailure(isFrameValidated ? aFrame : nullptr, error); switch (error) {