[dpdk-dev] net/af_packet: prefer snprintf against strncpy

Message ID 20170504111659.17670-1-ferruh.yigit@intel.com (mailing list archive)
State Accepted, archived
Headers

Checks

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

Commit Message

Ferruh Yigit May 4, 2017, 11:16 a.m. UTC
  strncpy may left destination buffer not NULL terminated, switched using
snprintf to be sure destination buffer is NULL terminated.

Coverity issue: 1407495
Coverity issue: 1407498
Fixes: cc68ac4847bc ("net/af_packet: support MTU change")
Fixes: 218259590ea4 ("net/af_packet: support promiscuous")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Chas Williams <ciwillia@brocade.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Thomas Monjalon May 5, 2017, 3:59 p.m. UTC | #1
04/05/2017 13:16, Ferruh Yigit:
> strncpy may left destination buffer not NULL terminated, switched using
> snprintf to be sure destination buffer is NULL terminated.
> 
> Coverity issue: 1407495
> Coverity issue: 1407498
> Fixes: cc68ac4847bc ("net/af_packet: support MTU change")
> Fixes: 218259590ea4 ("net/af_packet: support promiscuous")
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied, thanks
  

Patch

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index 6f6ba0c..68de45c 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -452,7 +452,7 @@  eth_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 	if (s < 0)
 		return -EINVAL;
 
-	strncpy(ifr.ifr_name, internals->if_name, IFNAMSIZ);
+	snprintf(ifr.ifr_name, IFNAMSIZ, "%s", internals->if_name);
 	ret = ioctl(s, SIOCSIFMTU, &ifr);
 	close(s);
 
@@ -472,7 +472,7 @@  eth_dev_change_flags(char *if_name, uint32_t flags, uint32_t mask)
 	if (s < 0)
 		return;
 
-	strncpy(ifr.ifr_name, if_name, IFNAMSIZ);
+	snprintf(ifr.ifr_name, IFNAMSIZ, "%s", if_name);
 	if (ioctl(s, SIOCGIFFLAGS, &ifr) < 0)
 		goto out;
 	ifr.ifr_flags &= mask;