system/ping: Guard against division by zero when calculating the RTT.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
This commit is contained in:
Abdelatif Guettouche 2022-04-22 02:47:58 +02:00 committed by Petro Karashchenko
parent 1acca2946e
commit 473611d51d
2 changed files with 22 additions and 8 deletions

View File

@ -242,10 +242,17 @@ static void ping_result(FAR const struct ping_result_s *result)
result->extra / USEC_PER_MSEC);
if (result->nreplies > 0)
{
long avg = priv->tsum / result->nreplies;
long long tempnum = priv->tsum2 / result->nreplies -
(long long)avg * avg;
long tmdev = ub16toi(ub32sqrtub16(uitoub32(tempnum)));
long avg = 0;
long long tempnum = 0;
long tmdev = 0;
if (priv->tsum > 0)
{
avg = priv->tsum / result->nreplies;
tempnum = priv->tsum2 / result->nreplies -
(long long)avg * avg;
tmdev = ub16toi(ub32sqrtub16(uitoub32(tempnum)));
}
printf("rtt min/avg/max/mdev = %ld.%03ld/%ld.%03ld/"
"%ld.%03ld/%ld.%03ld ms\n",

View File

@ -239,10 +239,17 @@ static void ping6_result(FAR const struct ping6_result_s *result)
result->extra / USEC_PER_MSEC);
if (result->nreplies > 0)
{
long avg = priv->tsum / result->nreplies;
long long tempnum = priv->tsum2 / result->nreplies -
(long long)avg * avg;
long tmdev = ub16toi(ub32sqrtub16(uitoub32(tempnum)));
long avg = 0;
long long tempnum = 0;
long tmdev = 0;
if (priv->tsum > 0)
{
avg = priv->tsum / result->nreplies;
tempnum = priv->tsum2 / result->nreplies -
(long long)avg * avg;
tmdev = ub16toi(ub32sqrtub16(uitoub32(tempnum)));
}
printf("rtt min/avg/max/mdev = %ld.%03ld/%ld.%03ld/"
"%ld.%03ld/%ld.%03ld ms\n",