From bf34ecc70489da13c90ba3aa8436c8b0537bac65 Mon Sep 17 00:00:00 2001 From: gytxxsy Date: Thu, 5 Dec 2024 02:48:31 +0800 Subject: [PATCH] [cli] fix the issue of overflow when calculating ping statistics (#10986) Fix the overflow issue when `mTotalRoundTripTime` is very large. --- src/cli/cli_ping.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cli/cli_ping.cpp b/src/cli/cli_ping.cpp index 73c626c2f..021b45861 100644 --- a/src/cli/cli_ping.cpp +++ b/src/cli/cli_ping.cpp @@ -233,7 +233,8 @@ void PingSender::HandlePingStatistics(const otPingSenderStatistics *aStatistics) if (aStatistics->mReceivedCount != 0) { - uint32_t avgRoundTripTime = 1000 * aStatistics->mTotalRoundTripTime / aStatistics->mReceivedCount; + uint32_t avgRoundTripTime = + 1000 * static_cast(aStatistics->mTotalRoundTripTime) / aStatistics->mReceivedCount; OutputFormat(" Round-trip min/avg/max = %u/%u.%u/%u ms.", aStatistics->mMinRoundTripTime, static_cast(avgRoundTripTime / 1000), static_cast(avgRoundTripTime % 1000),