[dpdk-dev] [PATCH] net/i40e: fix value of num parameter for strncpy function

Bruce Richardson bruce.richardson at intel.com
Mon Oct 23 14:57:45 CEST 2017


On Mon, Oct 23, 2017 at 12:24:49PM +0100, Kirill Rybalchenko wrote:
> num parameter for strncpy() function should be smaller than
> actual destination buffer size to allow null termination.
> 
> Fixes: 40d1324423a4 ("net/i40e: get ddp profile protocol info")
> 
> Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko at intel.com>
> ---
>  drivers/net/i40e/rte_pmd_i40e.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c
> index 4881ea0..489f66b 100644
> --- a/drivers/net/i40e/rte_pmd_i40e.c
> +++ b/drivers/net/i40e/rte_pmd_i40e.c
> @@ -1928,7 +1928,7 @@ int rte_pmd_i40e_get_ddp_info(uint8_t *pkg_buff, uint32_t pkg_size,
>  		for (i = j = 0; i < nb_rec; j++) {
>  			pinfo[j].proto_id = tlv->data[0];
>  			strncpy(pinfo[j].name, (const char *)&tlv->data[1],
> -				I40E_DDP_NAME_SIZE);
> +				I40E_DDP_NAME_SIZE - 1);
>  			i += tlv->len;
>  			tlv = &tlv[tlv->len];
>  		}
> -- 

This is not a proper fix, as it still won't null-terminate the result.
Replace strncpy with snprintf is probably the best solution.

/Bruce


More information about the dev mailing list