[cli] fix the issue of overflow when calculating ping statistics (#10986)

Fix the overflow issue when `mTotalRoundTripTime` is very large.
This commit is contained in:
gytxxsy
2024-12-04 10:48:31 -08:00
committed by GitHub
parent 89d2ccacfb
commit bf34ecc704
+2 -1
View File
@@ -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<uint64_t>(aStatistics->mTotalRoundTripTime) / aStatistics->mReceivedCount;
OutputFormat(" Round-trip min/avg/max = %u/%u.%u/%u ms.", aStatistics->mMinRoundTripTime,
static_cast<uint16_t>(avgRoundTripTime / 1000), static_cast<uint16_t>(avgRoundTripTime % 1000),