Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 May 2016 07:08:19 +0000 (UTC)
From:      Don Lewis <truckman@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r300283 - stable/10/usr.sbin/rtsold
Message-ID:  <201605200708.u4K78JaY094361@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: truckman
Date: Fri May 20 07:08:19 2016
New Revision: 300283
URL: https://svnweb.freebsd.org/changeset/base/300283

Log:
  MFC r299868
  
  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:		991863, 991864, 991865

Modified:
  stable/10/usr.sbin/rtsold/if.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/rtsold/if.c
==============================================================================
--- stable/10/usr.sbin/rtsold/if.c	Fri May 20 07:07:27 2016	(r300282)
+++ stable/10/usr.sbin/rtsold/if.c	Fri May 20 07:08:19 2016	(r300283)
@@ -83,7 +83,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));
 
@@ -181,7 +181,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));
@@ -197,7 +197,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) {
@@ -401,7 +401,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__,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605200708.u4K78JaY094361>