diff mbox series

[iptables,5/9] nft: Avoid buffer size warnings copying iface names

Message ID 20210602152403.5689-6-phil@nwl.cc
State Accepted
Delegated to: Pablo Neira
Headers show
Series Fix a bunch of static analyzer warnings | expand

Commit Message

Phil Sutter June 2, 2021, 3:23 p.m. UTC
The call to strncpy() is actually not needed: source buffer is only
IFNAMSIZ bytes large and guaranteed to be null-terminated. Use this to
avoid compiler warnings due to size parameter matching the destination
buffer size by performing the copy using (dumb) memcpy() instead.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 iptables/nft-ipv4.c | 4 ++--
 iptables/nft-ipv6.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/iptables/nft-ipv4.c b/iptables/nft-ipv4.c
index a5b835b1f681d..34f94bd8cc24a 100644
--- a/iptables/nft-ipv4.c
+++ b/iptables/nft-ipv4.c
@@ -348,11 +348,11 @@  static void nft_ipv4_post_parse(int command,
 	 */
 	cs->fw.ip.invflags = args->invflags;
 
-	strncpy(cs->fw.ip.iniface, args->iniface, IFNAMSIZ);
+	memcpy(cs->fw.ip.iniface, args->iniface, IFNAMSIZ);
 	memcpy(cs->fw.ip.iniface_mask,
 	       args->iniface_mask, IFNAMSIZ*sizeof(unsigned char));
 
-	strncpy(cs->fw.ip.outiface, args->outiface, IFNAMSIZ);
+	memcpy(cs->fw.ip.outiface, args->outiface, IFNAMSIZ);
 	memcpy(cs->fw.ip.outiface_mask,
 	       args->outiface_mask, IFNAMSIZ*sizeof(unsigned char));
 
diff --git a/iptables/nft-ipv6.c b/iptables/nft-ipv6.c
index 46008fc5e762a..d9c9400ad7dc3 100644
--- a/iptables/nft-ipv6.c
+++ b/iptables/nft-ipv6.c
@@ -293,11 +293,11 @@  static void nft_ipv6_post_parse(int command, struct iptables_command_state *cs,
 	 */
 	cs->fw6.ipv6.invflags = args->invflags;
 
-	strncpy(cs->fw6.ipv6.iniface, args->iniface, IFNAMSIZ);
+	memcpy(cs->fw6.ipv6.iniface, args->iniface, IFNAMSIZ);
 	memcpy(cs->fw6.ipv6.iniface_mask,
 	       args->iniface_mask, IFNAMSIZ*sizeof(unsigned char));
 
-	strncpy(cs->fw6.ipv6.outiface, args->outiface, IFNAMSIZ);
+	memcpy(cs->fw6.ipv6.outiface, args->outiface, IFNAMSIZ);
 	memcpy(cs->fw6.ipv6.outiface_mask,
 	       args->outiface_mask, IFNAMSIZ*sizeof(unsigned char));