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.wi...@intel.com>
---
v4 - Forgot to finish rebase
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 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index efc4426..47a7060 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -129,7 +129,7 @@ tun_alloc(struct pmd_internals *pmd, uint16_t qid)
        memset(&ifr, 0, sizeof(struct ifreq));
 
        ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
-       strncpy(ifr.ifr_name, pmd->name, IFNAMSIZ);
+       snprintf(ifr.ifr_name, IFNAMSIZ, "%s", pmd->name);
 
        RTE_LOG(DEBUG, PMD, "ifr_name '%s'\n", ifr.ifr_name);
 
@@ -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);
+       snprintf(ifr.ifr_name, IFNAMSIZ, "%s", pmd->name);
        err = ioctl(s, SIOCGIFFLAGS, &ifr);
        if (err < 0) {
                RTE_LOG(WARNING, PMD, "Unable to get %s device flags: %s\n",
-- 
2.8.0.GIT

Reply via email to