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: 6b38b2725c
("net/tap: fix multi-queue support")
Cc: stable@dpdk.org
Signed-off-by: Keith Wiles <keith.wiles@intel.com>
This commit is contained in:
parent
2972254ce1
commit
8657878861
@ -129,7 +129,7 @@ tun_alloc(struct pmd_internals *pmd, uint16_t qid)
|
|||||||
memset(&ifr, 0, sizeof(struct ifreq));
|
memset(&ifr, 0, sizeof(struct ifreq));
|
||||||
|
|
||||||
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
|
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);
|
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;
|
return -1;
|
||||||
}
|
}
|
||||||
memset(&ifr, 0, sizeof(ifr));
|
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);
|
err = ioctl(s, SIOCGIFFLAGS, &ifr);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
RTE_LOG(WARNING, PMD, "Unable to get %s device flags: %s\n",
|
RTE_LOG(WARNING, PMD, "Unable to get %s device flags: %s\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user