From ebe3a769911071450acb808153ec2a2496726906 Mon Sep 17 00:00:00 2001 From: Eelco Chaudron Date: Tue, 19 Mar 2019 12:10:44 +0000 Subject: [PATCH] meter: fix divide by zero for RFC4115 RFC 4115 allows a meter with either cir and/or eir configured. When only one is configured a divide by zero would occur. Fixes: 655796d2b5fb ("meter: support RFC4115 trTCM") Signed-off-by: Eelco Chaudron --- lib/librte_meter/rte_meter.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/librte_meter/rte_meter.c b/lib/librte_meter/rte_meter.c index e55f9be65b..45679444e9 100644 --- a/lib/librte_meter/rte_meter.c +++ b/lib/librte_meter/rte_meter.c @@ -19,7 +19,15 @@ static void rte_meter_get_tb_params(uint64_t hz, uint64_t rate, uint64_t *tb_period, uint64_t *tb_bytes_per_period) { - double period = ((double) hz) / ((double) rate); + double period; + + if (rate == 0) { + *tb_bytes_per_period = 0; + *tb_period = RTE_METER_TB_PERIOD_MIN; + return; + } + + period = ((double) hz) / ((double) rate); if (period >= RTE_METER_TB_PERIOD_MIN) { *tb_bytes_per_period = 1; -- 2.20.1