mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 21:37:08 +00:00
eigrpd: Up convert to uint64_t before doing math
Intentionally up convert uint8_t and uint32_t values
to a uint64_t before doing math to make Coverity happy.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit c960cb28f7
)
This commit is contained in:
parent
b487f0aff0
commit
82021021f0
@ -86,19 +86,24 @@ eigrp_metric_t eigrp_calculate_metrics(struct eigrp *eigrp,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (eigrp->k_values[0])
|
if (eigrp->k_values[0])
|
||||||
composite += (eigrp->k_values[0] * metric.bandwidth);
|
composite += ((eigrp_metric_t)eigrp->k_values[0] *
|
||||||
|
(eigrp_metric_t)metric.bandwidth);
|
||||||
if (eigrp->k_values[1])
|
if (eigrp->k_values[1])
|
||||||
composite += ((eigrp->k_values[1] * metric.bandwidth)
|
composite += (((eigrp_metric_t)eigrp->k_values[1] *
|
||||||
/ (256 - metric.load));
|
(eigrp_metric_t)metric.bandwidth) /
|
||||||
|
(256 - metric.load));
|
||||||
if (eigrp->k_values[2])
|
if (eigrp->k_values[2])
|
||||||
composite += (eigrp->k_values[2] * metric.delay);
|
composite += ((eigrp_metric_t)eigrp->k_values[2] *
|
||||||
|
(eigrp_metric_t)metric.delay);
|
||||||
if (eigrp->k_values[3] && !eigrp->k_values[4])
|
if (eigrp->k_values[3] && !eigrp->k_values[4])
|
||||||
composite *= eigrp->k_values[3];
|
composite *= (eigrp_metric_t)eigrp->k_values[3];
|
||||||
if (!eigrp->k_values[3] && eigrp->k_values[4])
|
if (!eigrp->k_values[3] && eigrp->k_values[4])
|
||||||
composite *= (eigrp->k_values[4] / metric.reliability);
|
composite *= ((eigrp_metric_t)eigrp->k_values[4] /
|
||||||
|
(eigrp_metric_t)metric.reliability);
|
||||||
if (eigrp->k_values[3] && eigrp->k_values[4])
|
if (eigrp->k_values[3] && eigrp->k_values[4])
|
||||||
composite *= ((eigrp->k_values[4] / metric.reliability)
|
composite *= (((eigrp_metric_t)eigrp->k_values[4] /
|
||||||
+ eigrp->k_values[3]);
|
(eigrp_metric_t)metric.reliability) +
|
||||||
|
(eigrp_metric_t)eigrp->k_values[3]);
|
||||||
|
|
||||||
composite =
|
composite =
|
||||||
(composite <= EIGRP_METRIC_MAX) ? composite : EIGRP_METRIC_MAX;
|
(composite <= EIGRP_METRIC_MAX) ? composite : EIGRP_METRIC_MAX;
|
||||||
|
Loading…
Reference in New Issue
Block a user