From: Keith Wiles Date: Fri, 17 Feb 2017 15:43:04 +0000 (-0600) Subject: net/tap: fix possibly unterminated string X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=865787886101310954ddc35eb5c29b3ab7b9c055;p=dpdk.git net/tap: fix possibly unterminated string 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. Coverity issue: 1407499 Fixes: 6b38b2725cdb ("net/tap: fix multi-queue support") Cc: stable@dpdk.org Signed-off-by: Keith Wiles --- diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index efc44260bf..47a7060706 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",