From 4dd9fd0c9e9e0e71647820a532d5c29a5e390a58 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Thu, 18 Aug 2022 23:00:51 -0700 Subject: [PATCH] [link-metrics] fix integer conversions & use of `u8` for offset (#8043) This commit addresses integer conversion warnings in `LinkMetrics`. In particular it updates `ReadTypeIdFlagsFromMessage()` to use `uint16_t` as offset value (instead of `uint8_t`). --- src/core/thread/link_metrics.cpp | 16 +++++++++------- src/core/thread/link_metrics.hpp | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/core/thread/link_metrics.cpp b/src/core/thread/link_metrics.cpp index 50fbfc05f..43714e949 100644 --- a/src/core/thread/link_metrics.cpp +++ b/src/core/thread/link_metrics.cpp @@ -170,7 +170,8 @@ Error LinkMetrics::SendMgmtRequestForwardTrackingSeries(const Ip6::Address & seriesFlags->SetFrom(aSeriesFlags); - error = Get().SendLinkMetricsManagementRequest(aDestination, subTlvs, fwdProbingSubTlv->GetSize()); + error = Get().SendLinkMetricsManagementRequest(aDestination, subTlvs, + static_cast(fwdProbingSubTlv->GetSize())); exit: LogDebg("SendMgmtRequestForwardTrackingSeries, error:%s, Series ID:%u", ErrorToString(error), aSeriesId); @@ -202,7 +203,8 @@ Error LinkMetrics::SendMgmtRequestEnhAckProbing(const Ip6::Address &aDestination } error = Get().SendLinkMetricsManagementRequest( - aDestination, reinterpret_cast(&enhAckConfigSubTlv), enhAckConfigSubTlv.GetSize()); + aDestination, reinterpret_cast(&enhAckConfigSubTlv), + static_cast(enhAckConfigSubTlv.GetSize())); if (aMetrics != nullptr) { @@ -281,7 +283,7 @@ Error LinkMetrics::AppendReport(Message &aMessage, const Message &aRequestMessag break; } - offset += tlv.GetSize(); + offset += static_cast(tlv.GetSize()); } VerifyOrExit(hasQueryId, error = kErrorParse); @@ -390,7 +392,7 @@ Error LinkMetrics::HandleManagementRequest(const Message &aMessage, Neighbor &aN break; } - index += tlv.GetSize(); + index += static_cast(tlv.GetSize()); } if (hasForwardProbingRegistrationTlv) @@ -438,7 +440,7 @@ Error LinkMetrics::HandleManagementResponse(const Message &aMessage, const Ip6:: break; } - index += tlv.GetSize(); + index += static_cast(tlv.GetSize()); } VerifyOrExit(hasStatus, error = kErrorParse); @@ -758,8 +760,8 @@ exit: } Error LinkMetrics::ReadTypeIdFlagsFromMessage(const Message &aMessage, - uint8_t aStartPos, - uint8_t aEndPos, + uint16_t aStartPos, + uint16_t aEndPos, Metrics & aMetrics) { Error error = kErrorNone; diff --git a/src/core/thread/link_metrics.hpp b/src/core/thread/link_metrics.hpp index 318aea0e6..31807b0f1 100644 --- a/src/core/thread/link_metrics.hpp +++ b/src/core/thread/link_metrics.hpp @@ -433,8 +433,8 @@ private: Neighbor *GetNeighborFromLinkLocalAddr(const Ip6::Address &aDestination); static Error ReadTypeIdFlagsFromMessage(const Message &aMessage, - uint8_t aStartPos, - uint8_t aEndPos, + uint16_t aStartPos, + uint16_t aEndPos, Metrics & aMetrics); static Error AppendReportSubTlvToMessage(Message &aMessage, uint8_t &aLength, const MetricsValues &aValues); static Error AppendStatusSubTlvToMessage(Message &aMessage, uint8_t &aLength, Status aStatus);