]> git.gsnw.org Git - fping.git/commitdiff
Defensive coding: guard against a division by zero
authorErik Auerswald <auerswal@unix-ag.uni-kl.de>
Tue, 9 Jan 2024 11:40:46 +0000 (12:40 +0100)
committerDavid Schweikert <david@schweikert.ch>
Sun, 4 Feb 2024 10:57:59 +0000 (11:57 +0100)
In the function print_per_system_stats(), if packets have been
lost, the number of sent packets is checked to be positive before
dividing by it.  If no packets have been lost, this is not checked.
Either the existing check is not needed, or both code paths need
the check.

The function print_per_system_splits() is quite similar to
print_per_system_stats(), and has the equivalent guards against a
division by zero in both code paths, not just one of them.

In the spirit of defensive coding, I think it is better to be safe
and add the missing guard against a division by zero.

src/fping.c

index ae248b1e7a07ea6ef48ea1c676ff83deb8850482..a937c1d8862c9b67147615a8852fb7fbcaa7579d 100644 (file)
@@ -1655,7 +1655,7 @@ void print_per_system_stats(void)
             else {
                 fprintf(stderr, " xmt/rcv/%%return = %d/%d/%d%%",
                     h->num_sent, h->num_recv,
-                    ((h->num_recv * 100) / h->num_sent));
+                    h->num_sent > 0 ? ((h->num_recv * 100) / h->num_sent) : 0);
             }
 
             if (h->num_recv) {