[dpdk-dev] net/mrvl: fix build error with gcc

Message ID 20180322181847.74246-1-ferruh.yigit@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

Ferruh Yigit March 22, 2018, 6:18 p.m. UTC
  gcc version:
aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11) 7.2.1 20171011

build error:
  CC mrvl_qos.o
.../drivers/net/mrvl/mrvl_qos.c: In function ‘mrvl_configure_rxqs’:
.../drivers/net/mrvl/mrvl_qos.c:679:17:
  error: ‘sprintf’ may write a terminating nul past the end of the
         destination [-Werror=format-overflow=]
  sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
                 ^~~~~~~~~~~~~~~~~
.../drivers/net/mrvl/mrvl_qos.c:679:2:
  note: ‘sprintf’ output between 13 and 17 bytes into a destination
        of size 16
  sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixed by replacing sprintf to snprintf.

Fixes: 8860fd7b70f0 ("net/mrvl: add ingress policer support")
Cc: tdu@semihalf.com

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
---
 drivers/net/mrvl/mrvl_qos.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Tomasz Duszynski March 23, 2018, 7:52 a.m. UTC | #1
On Thu, Mar 22, 2018 at 06:18:47PM +0000, Ferruh Yigit wrote:
> gcc version:
> aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11) 7.2.1 20171011
>
> build error:
>   CC mrvl_qos.o
> .../drivers/net/mrvl/mrvl_qos.c: In function ‘mrvl_configure_rxqs’:
> .../drivers/net/mrvl/mrvl_qos.c:679:17:
>   error: ‘sprintf’ may write a terminating nul past the end of the
>          destination [-Werror=format-overflow=]
>   sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
>                  ^~~~~~~~~~~~~~~~~
> .../drivers/net/mrvl/mrvl_qos.c:679:2:
>   note: ‘sprintf’ output between 13 and 17 bytes into a destination
>         of size 16
>   sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
>   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Fixed by replacing sprintf to snprintf.
>
> Fixes: 8860fd7b70f0 ("net/mrvl: add ingress policer support")
> Cc: tdu@semihalf.com
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> ---
>  drivers/net/mrvl/mrvl_qos.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/mrvl/mrvl_qos.c b/drivers/net/mrvl/mrvl_qos.c
> index e9c4531fd..741d3da7a 100644
> --- a/drivers/net/mrvl/mrvl_qos.c
> +++ b/drivers/net/mrvl/mrvl_qos.c
> @@ -676,7 +676,8 @@ setup_policer(struct mrvl_priv *priv, struct pp2_cls_plcr_params *params)
>  	char match[16];
>  	int ret;
>
> -	sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
> +	snprintf(match, sizeof(match), "policer-%d:%d\n",
> +			priv->pp_id, priv->ppio_id);
>  	params->match = match;
>
>  	ret = pp2_cls_plcr_init(params, &priv->policer);
> --
> 2.13.6
>

Acked-by: Tomasz Duszynski <tdu@semihalf.com>

--
- Tomasz Duszyński
  
Ferruh Yigit March 27, 2018, 7:11 p.m. UTC | #2
On 3/23/2018 7:52 AM, Tomasz Duszynski wrote:
> On Thu, Mar 22, 2018 at 06:18:47PM +0000, Ferruh Yigit wrote:
>> gcc version:
>> aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11) 7.2.1 20171011
>>
>> build error:
>>   CC mrvl_qos.o
>> .../drivers/net/mrvl/mrvl_qos.c: In function ‘mrvl_configure_rxqs’:
>> .../drivers/net/mrvl/mrvl_qos.c:679:17:
>>   error: ‘sprintf’ may write a terminating nul past the end of the
>>          destination [-Werror=format-overflow=]
>>   sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
>>                  ^~~~~~~~~~~~~~~~~
>> .../drivers/net/mrvl/mrvl_qos.c:679:2:
>>   note: ‘sprintf’ output between 13 and 17 bytes into a destination
>>         of size 16
>>   sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
>>   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> Fixed by replacing sprintf to snprintf.
>>
>> Fixes: 8860fd7b70f0 ("net/mrvl: add ingress policer support")
>> Cc: tdu@semihalf.com
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>

> Acked-by: Tomasz Duszynski <tdu@semihalf.com>

Squashed into relevant commit in next-net, thanks.
  

Patch

diff --git a/drivers/net/mrvl/mrvl_qos.c b/drivers/net/mrvl/mrvl_qos.c
index e9c4531fd..741d3da7a 100644
--- a/drivers/net/mrvl/mrvl_qos.c
+++ b/drivers/net/mrvl/mrvl_qos.c
@@ -676,7 +676,8 @@  setup_policer(struct mrvl_priv *priv, struct pp2_cls_plcr_params *params)
 	char match[16];
 	int ret;
 
-	sprintf(match, "policer-%d:%d\n", priv->pp_id, priv->ppio_id);
+	snprintf(match, sizeof(match), "policer-%d:%d\n",
+			priv->pp_id, priv->ppio_id);
 	params->match = match;
 
 	ret = pp2_cls_plcr_init(params, &priv->policer);