[dpdk-stable] [dpdk-dev] [PATCH v1] examples/vm_power_manager: fix overflowed return value

Burakov, Anatoly anatoly.burakov at intel.com
Fri Apr 26 12:29:01 CEST 2019


On 26-Apr-19 9:44 AM, David Hunt wrote:
> Coverity complains about the return of a value that may
> possibly overflow because of a multiply. Limit the value
> so it cannot overflow.
> 
> Coverity issue: 337677
> Fixes: 4b1a631b8a ("examples/vm_power: add oob monitoring functions")
> CC: stable at dpdk.org
> Signed-off-by: David Hunt <david.hunt at intel.com>
> ---
>   examples/vm_power_manager/oob_monitor_x86.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/examples/vm_power_manager/oob_monitor_x86.c b/examples/vm_power_manager/oob_monitor_x86.c
> index ebd96b205..2074eec1e 100644
> --- a/examples/vm_power_manager/oob_monitor_x86.c
> +++ b/examples/vm_power_manager/oob_monitor_x86.c
> @@ -99,7 +99,10 @@ apply_policy(int core)
>   		return -1.0;
>   	}
>   
> -	ratio = (float)miss_diff * (float)100 / (float)hits_diff;
> +	ratio = (float)miss_diff / (float)hits_diff;
> +	if (ratio > 1.0)
> +		ratio = 1.0;
> +	ratio *= 100.0f;

It should probably be the other way around - multiply first, then clamp. 
Also, please use RTE_MIN.

>   
>   	if (ratio < ci->branch_ratio_threshold)
>   		power_manager_scale_core_min(core);
> 


-- 
Thanks,
Anatoly


More information about the stable mailing list