diff options
author | truckman <truckman@FreeBSD.org> | 2016-05-20 07:00:11 +0000 |
---|---|---|
committer | truckman <truckman@FreeBSD.org> | 2016-05-20 07:00:11 +0000 |
commit | 4597c47c8b031e66fdecf9be5ab02e94150345e6 (patch) | |
tree | 29c42c1f6ecd086d4da12ef4266b3f0cb38a5779 | |
parent | da24c7987e35b6208d9d89babc94b8fcd8345813 (diff) | |
download | FreeBSD-src-4597c47c8b031e66fdecf9be5ab02e94150345e6.zip FreeBSD-src-4597c47c8b031e66fdecf9be5ab02e94150345e6.tar.gz |
MFC r299867
Use strlcpy() instead of strncpy() when copying ifname to ensure
that it is NUL terminated. Additional NUL padding is not required
for short names.
Reported by: Coverity
CID: 974860, 1009972, 1009973
-rw-r--r-- | usr.sbin/rtadvd/config.c | 2 | ||||
-rw-r--r-- | 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 f0e11a3..b781ecc 100644 --- a/usr.sbin/rtadvd/config.c +++ b/usr.sbin/rtadvd/config.c @@ -634,7 +634,7 @@ getconfig_free_pfx: 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 b22e37d..ac2ba1b 100644 --- a/usr.sbin/rtadvd/if.c +++ b/usr.sbin/rtadvd/if.c @@ -388,7 +388,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) { @@ -517,7 +517,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) { |