[dpdk-dev,v5,13/16] net/vdev_netvsc: 3 x strncpy misuse

Message ID 152608972963.121204.10182569039129005823.stgit@localhost.localdomain (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Andy Green May 12, 2018, 1:48 a.m. UTC
  Signed-off-by: Andy Green <andy@warmcat.com>
Fixes: e7dc5d7becc5 ("net/vdev_netvsc: implement core functionality")
Cc: stable@dpdk.org
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 drivers/net/vdev_netvsc/vdev_netvsc.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Matan Azrad May 13, 2018, 7:47 a.m. UTC | #1
Hi Andy

From: Andy Green

> Signed-off-by: Andy Green <andy@warmcat.com>

> Fixes: e7dc5d7becc5 ("net/vdev_netvsc: implement core functionality")

> Cc: stable@dpdk.org


No need the fix line, it is just conversion.

Actually the strlcpy was introduced later and the next commit should have it:
c022cb400e92 ("convert snprintf to strlcpy")

which came after the vdev_netvsc driver had been introduced.

The title can be as above;
net/vdev_netvsc: convert snprintf to strlcpy

The body could be:

Continue snprintf to strlcpy conversions started by commit c022cb400e92 ("convert snprintf to strlcpy").

> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

> ---

>  drivers/net/vdev_netvsc/vdev_netvsc.c |    7 ++++---

>  1 file changed, 4 insertions(+), 3 deletions(-)

> 

> diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c

> b/drivers/net/vdev_netvsc/vdev_netvsc.c

> index dca25761d..f1d036152 100644

> --- a/drivers/net/vdev_netvsc/vdev_netvsc.c

> +++ b/drivers/net/vdev_netvsc/vdev_netvsc.c

> @@ -35,6 +35,7 @@

>  #include <rte_hypervisor.h>

>  #include <rte_kvargs.h>

>  #include <rte_log.h>

> +#include <rte_string_fns.h>

> 

>  #define VDEV_NETVSC_DRIVER net_vdev_netvsc  #define

> VDEV_NETVSC_DRIVER_NAME RTE_STR(VDEV_NETVSC_DRIVER) @@ -182,7

> +183,7 @@ vdev_netvsc_foreach_iface(int (*func)(const struct if_nameindex

> *iface,

>  		is_netvsc_ret = vdev_netvsc_iface_is_netvsc(&iface[i]) ? 1 : 0;

>  		if (is_netvsc ^ is_netvsc_ret)

>  			continue;

> -		strncpy(req.ifr_name, iface[i].if_name, sizeof(req.ifr_name));

> +		strlcpy(req.ifr_name, iface[i].if_name, sizeof(req.ifr_name));

>  		if (ioctl(s, SIOCGIFHWADDR, &req) == -1) {

>  			DRV_LOG(WARNING, "cannot retrieve information

> about"

>  					 " interface \"%s\": %s",

> @@ -384,7 +385,7 @@ vdev_netvsc_device_probe(const struct if_nameindex

> *iface,

>  		DRV_LOG(DEBUG,

>  			"NetVSC interface \"%s\" (index %u) renamed \"%s\"",

>  			ctx->if_name, ctx->if_index, iface->if_name);

> -		strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));

> +		strlcpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));

>  		return 0;

>  	}

>  	if (!is_same_ether_addr(eth_addr, &ctx->if_addr)) @@ -582,7 +583,7

> @@ vdev_netvsc_netvsc_probe(const struct if_nameindex *iface,

>  		goto error;

>  	}

>  	ctx->id = vdev_netvsc_ctx_count;

> -	strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));

> +	strlcpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));

>  	ctx->if_index = iface->if_index;

>  	ctx->if_addr = *eth_addr;

>  	ctx->pipe[0] = -1;
  

Patch

diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c b/drivers/net/vdev_netvsc/vdev_netvsc.c
index dca25761d..f1d036152 100644
--- a/drivers/net/vdev_netvsc/vdev_netvsc.c
+++ b/drivers/net/vdev_netvsc/vdev_netvsc.c
@@ -35,6 +35,7 @@ 
 #include <rte_hypervisor.h>
 #include <rte_kvargs.h>
 #include <rte_log.h>
+#include <rte_string_fns.h>
 
 #define VDEV_NETVSC_DRIVER net_vdev_netvsc
 #define VDEV_NETVSC_DRIVER_NAME RTE_STR(VDEV_NETVSC_DRIVER)
@@ -182,7 +183,7 @@  vdev_netvsc_foreach_iface(int (*func)(const struct if_nameindex *iface,
 		is_netvsc_ret = vdev_netvsc_iface_is_netvsc(&iface[i]) ? 1 : 0;
 		if (is_netvsc ^ is_netvsc_ret)
 			continue;
-		strncpy(req.ifr_name, iface[i].if_name, sizeof(req.ifr_name));
+		strlcpy(req.ifr_name, iface[i].if_name, sizeof(req.ifr_name));
 		if (ioctl(s, SIOCGIFHWADDR, &req) == -1) {
 			DRV_LOG(WARNING, "cannot retrieve information about"
 					 " interface \"%s\": %s",
@@ -384,7 +385,7 @@  vdev_netvsc_device_probe(const struct if_nameindex *iface,
 		DRV_LOG(DEBUG,
 			"NetVSC interface \"%s\" (index %u) renamed \"%s\"",
 			ctx->if_name, ctx->if_index, iface->if_name);
-		strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));
+		strlcpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));
 		return 0;
 	}
 	if (!is_same_ether_addr(eth_addr, &ctx->if_addr))
@@ -582,7 +583,7 @@  vdev_netvsc_netvsc_probe(const struct if_nameindex *iface,
 		goto error;
 	}
 	ctx->id = vdev_netvsc_ctx_count;
-	strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));
+	strlcpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));
 	ctx->if_index = iface->if_index;
 	ctx->if_addr = *eth_addr;
 	ctx->pipe[0] = -1;