svn commit: r299868 - head/usr.sbin/rtsold
Don Lewis
truckman at FreeBSD.org
Sun May 15 22:17:43 UTC 2016
Author: truckman
Date: Sun May 15 22:17:41 2016
New Revision: 299868
URL: https://svnweb.freebsd.org/changeset/base/299868
Log:
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: 99186, 991864, 991865
MFC after: 1 week
Modified:
head/usr.sbin/rtsold/if.c
Modified: head/usr.sbin/rtsold/if.c
==============================================================================
--- head/usr.sbin/rtsold/if.c Sun May 15 22:06:21 2016 (r299867)
+++ head/usr.sbin/rtsold/if.c Sun May 15 22:17:41 2016 (r299868)
@@ -82,7 +82,7 @@ interface_up(char *name)
int s;
memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
+ strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
memset(&nd, 0, sizeof(nd));
strlcpy(nd.ifname, name, sizeof(nd.ifname));
@@ -180,7 +180,7 @@ interface_status(struct ifinfo *ifinfo)
/* get interface flags */
memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
+ strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
if (ioctl(ifsock, SIOCGIFFLAGS, &ifr) < 0) {
warnmsg(LOG_ERR, __func__, "ioctl(SIOCGIFFLAGS) on %s: %s",
ifname, strerror(errno));
@@ -196,7 +196,7 @@ interface_status(struct ifinfo *ifinfo)
if (!ifinfo->mediareqok)
goto active;
memset(&ifmr, 0, sizeof(ifmr));
- strncpy(ifmr.ifm_name, ifname, sizeof(ifmr.ifm_name));
+ strlcpy(ifmr.ifm_name, ifname, sizeof(ifmr.ifm_name));
if (ioctl(ifsock, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) {
if (errno != EINVAL) {
@@ -396,7 +396,7 @@ get_llflag(const char *name)
continue;
memset(&ifr6, 0, sizeof(ifr6));
- strncpy(ifr6.ifr_name, name, sizeof(ifr6.ifr_name));
+ strlcpy(ifr6.ifr_name, name, sizeof(ifr6.ifr_name));
memcpy(&ifr6.ifr_ifru.ifru_addr, sin6, sin6->sin6_len);
if (ioctl(s, SIOCGIFAFLAG_IN6, &ifr6) < 0) {
warnmsg(LOG_ERR, __func__,
More information about the svn-src-all
mailing list