[dpdk-dev,v3] net/tap: fix coverity warning on strncpy

Message ID 20170217153725.50050-1-keith.wiles@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

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

Commit Message

Wiles, Keith Feb. 17, 2017, 3:37 p.m. UTC
  Calling strncpy with a maximum size argument of 16 bytes on destination
array "ifr.ifr_ifrn.ifrn_name" of size 16 bytes might leave the
destination string unterminated.

Signed-off-by: Keith Wiles <keith.wiles@intel.com>
---
v3 - convert strncpy to use snprintf instead.
v2 - fix the checkpatch warning no spaces around '-'
v1 - fix coverity warning on strncpy using invalid length.

 drivers/net/tap/rte_eth_tap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Wiles, Keith Feb. 17, 2017, 3:39 p.m. UTC | #1
> On Feb 17, 2017, at 9:37 AM, Keith Wiles <keith.wiles@intel.com> wrote:

> 

> Calling strncpy with a maximum size argument of 16 bytes on destination

> array "ifr.ifr_ifrn.ifrn_name" of size 16 bytes might leave the

> destination string unterminated.

> 

> Signed-off-by: Keith Wiles <keith.wiles@intel.com>

> ---

> v3 - convert strncpy to use snprintf instead.

> v2 - fix the checkpatch warning no spaces around '-'

> v1 - fix coverity warning on strncpy using invalid length.

> 

> drivers/net/tap/rte_eth_tap.c | 2 +-

> 1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c

> index efc4426..cf1cea3 100644

> --- a/drivers/net/tap/rte_eth_tap.c

> +++ b/drivers/net/tap/rte_eth_tap.c

> @@ -297,7 +297,7 @@ tap_link_set_flags(struct pmd_internals *pmd, short flags, int add)

> 		return -1;

> 	}

> 	memset(&ifr, 0, sizeof(ifr));

> -	strncpy(ifr.ifr_name, pmd->name, IFNAMSIZ);

> +	strncpy(ifr.ifr_name, pmd->name, IFNAMSIZ - 1);

> 	err = ioctl(s, SIOCGIFFLAGS, &ifr);

> 	if (err < 0) {

> 		RTE_LOG(WARNING, PMD, "Unable to get %s device flags: %s\n”,


NAK :-( forgot to finish the rebase

> -- 

> 2.8.0.GIT

> 


Regards,
Keith
  

Patch

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index efc4426..cf1cea3 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -297,7 +297,7 @@  tap_link_set_flags(struct pmd_internals *pmd, short flags, int add)
 		return -1;
 	}
 	memset(&ifr, 0, sizeof(ifr));
-	strncpy(ifr.ifr_name, pmd->name, IFNAMSIZ);
+	strncpy(ifr.ifr_name, pmd->name, IFNAMSIZ - 1);
 	err = ioctl(s, SIOCGIFFLAGS, &ifr);
 	if (err < 0) {
 		RTE_LOG(WARNING, PMD, "Unable to get %s device flags: %s\n",