Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 May 2016 22:06:22 +0000 (UTC)
From:      Don Lewis <truckman@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r299867 - head/usr.sbin/rtadvd
Message-ID:  <201605152206.u4FM6MQU005786@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: truckman
Date: Sun May 15 22:06:21 2016
New Revision: 299867
URL: https://svnweb.freebsd.org/changeset/base/299867

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.
  
  MFC after:	1 week

Modified:
  head/usr.sbin/rtadvd/config.c
  head/usr.sbin/rtadvd/if.c

Modified: head/usr.sbin/rtadvd/config.c
==============================================================================
--- head/usr.sbin/rtadvd/config.c	Sun May 15 21:45:04 2016	(r299866)
+++ head/usr.sbin/rtadvd/config.c	Sun May 15 22:06:21 2016	(r299867)
@@ -640,7 +640,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));

Modified: head/usr.sbin/rtadvd/if.c
==============================================================================
--- head/usr.sbin/rtadvd/if.c	Sun May 15 21:45:04 2016	(r299866)
+++ head/usr.sbin/rtadvd/if.c	Sun May 15 22:06:21 2016	(r299867)
@@ -387,7 +387,7 @@ update_ifinfo_nd_flags(struct ifinfo *if
 	}
 	/* 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
 			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) {



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