diff options
author | Marko Zec <zec@FreeBSD.org> | 2021-09-16 14:34:05 +0000 |
---|---|---|
committer | Marko Zec <zec@FreeBSD.org> | 2021-09-16 14:34:05 +0000 |
commit | eb3148cc4d256c20b5c7c9052539139b6f57f58b (patch) | |
tree | 816d3edb02e4c502007717722547ad447409d37c | |
parent | 12061d2626e095cd5a5cbadeb567916e7d74db5a (diff) | |
download | src-eb3148cc4d256c20b5c7c9052539139b6f57f58b.tar.gz src-eb3148cc4d256c20b5c7c9052539139b6f57f58b.zip |
[fib algo][dxr] Fix division by zero.
A division by zero would occur if DXR would be activated on a vnet
with no IP addresses configured on any interfaces.
PR: 257965
MFC after: 3 days
Reported by: Raul Munoz
-rw-r--r-- | sys/netinet/in_fib_dxr.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet/in_fib_dxr.c b/sys/netinet/in_fib_dxr.c index 3c4e5700cd6c..3aa357cadedc 100644 --- a/sys/netinet/in_fib_dxr.c +++ b/sys/netinet/in_fib_dxr.c @@ -982,7 +982,9 @@ dxr2_try_squeeze: FIB_PRINTF(LOG_INFO, da->fd, "D%dR, %d prefixes, %d nhops (max)", DXR_D, rinfo.num_prefixes, rinfo.num_nhops); #endif - i = dxr_tot_size * 100 / rinfo.num_prefixes; + i = dxr_tot_size * 100; + if (rinfo.num_prefixes) + i /= rinfo.num_prefixes; FIB_PRINTF(LOG_INFO, da->fd, "%d.%02d KBytes, %d.%02d Bytes/prefix", dxr_tot_size / 1024, dxr_tot_size * 100 / 1024 % 100, i / 100, i % 100); |