From 8afa1c3d7af798af95ea91e3fab6fa501acc7c5a Mon Sep 17 00:00:00 2001 From: Don Lewis Date: Sun, 15 May 2016 22:06:21 +0000 Subject: [PATCH] Use strlcpy() instead of strncpy() when copying ifname to ensure that it is NUL terminated. Additional NUL padding is not required for short names. MFC after: 1 week --- usr.sbin/rtadvd/config.c | 2 +- usr.sbin/rtadvd/if.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c index 165a64dec693..db16e333febf 100644 --- a/usr.sbin/rtadvd/config.c +++ b/usr.sbin/rtadvd/config.c @@ -640,7 +640,7 @@ getconfig(struct ifinfo *ifi) exit(1); } memset(&ndi, 0, sizeof(ndi)); - strncpy(ndi.ifname, ifi->ifi_ifname, sizeof(ndi.ifname)); + strlcpy(ndi.ifname, ifi->ifi_ifname, sizeof(ndi.ifname)); if (ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&ndi) < 0) syslog(LOG_INFO, "<%s> ioctl:SIOCGIFINFO_IN6 at %s: %s", __func__, ifi->ifi_ifname, strerror(errno)); diff --git a/usr.sbin/rtadvd/if.c b/usr.sbin/rtadvd/if.c index b9af28d8d00d..dc6ac8e320db 100644 --- a/usr.sbin/rtadvd/if.c +++ b/usr.sbin/rtadvd/if.c @@ -387,7 +387,7 @@ update_ifinfo_nd_flags(struct ifinfo *ifi) } /* ND flags */ memset(&nd, 0, sizeof(nd)); - strncpy(nd.ifname, ifi->ifi_ifname, + strlcpy(nd.ifname, ifi->ifi_ifname, sizeof(nd.ifname)); error = ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&nd); if (error) { @@ -516,7 +516,7 @@ update_ifinfo(struct ifilist_head_t *ifi_head, int ifindex) if (ifi->ifi_phymtu == 0) { memset(&ifr, 0, sizeof(ifr)); ifr.ifr_addr.sa_family = AF_INET6; - strncpy(ifr.ifr_name, ifi->ifi_ifname, + strlcpy(ifr.ifr_name, ifi->ifi_ifname, sizeof(ifr.ifr_name)); error = ioctl(s, SIOCGIFMTU, (caddr_t)&ifr); if (error) {