svn commit: r255388 - stable/9/usr.sbin/rtadvd

Dag-Erling Smørgrav des at FreeBSD.org
Sun Sep 8 11:35:57 UTC 2013


Author: des
Date: Sun Sep  8 11:35:56 2013
New Revision: 255388
URL: http://svnweb.freebsd.org/changeset/base/255388

Log:
  MFH (r254684, r254955): fix segfault on reload.
  MFH (r255156): silence an error message on non-IPv6 interfaces.

Modified:
  stable/9/usr.sbin/rtadvd/config.c
  stable/9/usr.sbin/rtadvd/if.c
Directory Properties:
  stable/9/usr.sbin/rtadvd/   (props changed)

Modified: stable/9/usr.sbin/rtadvd/config.c
==============================================================================
--- stable/9/usr.sbin/rtadvd/config.c	Sun Sep  8 11:21:08 2013	(r255387)
+++ stable/9/usr.sbin/rtadvd/config.c	Sun Sep  8 11:35:56 2013	(r255388)
@@ -296,10 +296,8 @@ rm_rainfo(struct rainfo *rai)
 	if (rai->rai_ra_data != NULL)
 		free(rai->rai_ra_data);
 
-	while ((pfx = TAILQ_FIRST(&rai->rai_prefix)) != NULL) {
-		TAILQ_REMOVE(&rai->rai_prefix, pfx, pfx_next);
-		free(pfx);
-	}
+	while ((pfx = TAILQ_FIRST(&rai->rai_prefix)) != NULL)
+		delete_prefix(pfx);
 	while ((sol = TAILQ_FIRST(&rai->rai_soliciter)) != NULL) {
 		TAILQ_REMOVE(&rai->rai_soliciter, sol, sol_next);
 		free(sol);
@@ -1123,9 +1121,9 @@ add_prefix(struct rainfo *rai, struct in
 	pfx->pfx_onlinkflg = ipr->ipr_raf_onlink;
 	pfx->pfx_autoconfflg = ipr->ipr_raf_auto;
 	pfx->pfx_origin = PREFIX_FROM_DYNAMIC;
+	pfx->pfx_rainfo = rai;
 
 	TAILQ_INSERT_TAIL(&rai->rai_prefix, pfx, pfx_next);
-	pfx->pfx_rainfo = rai;
 
 	syslog(LOG_DEBUG, "<%s> new prefix %s/%d was added on %s",
 	    __func__,

Modified: stable/9/usr.sbin/rtadvd/if.c
==============================================================================
--- stable/9/usr.sbin/rtadvd/if.c	Sun Sep  8 11:21:08 2013	(r255387)
+++ stable/9/usr.sbin/rtadvd/if.c	Sun Sep  8 11:35:56 2013	(r255388)
@@ -394,8 +394,8 @@ update_ifinfo_nd_flags(struct ifinfo *if
 	error = ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&nd);
 	if (error) {
 		close(s);
-		syslog(LOG_ERR,
-		    "<%s> ioctl() failed.", __func__);
+		if (errno != EPFNOSUPPORT)
+			syslog(LOG_ERR, "<%s> ioctl() failed.", __func__);
 		return (1);
 	}
 	ifi->ifi_nd_flags = nd.ndi.flags;


More information about the svn-src-stable-9 mailing list