From f535864d209c01cecb379634e5029c0c90834a55 Mon Sep 17 00:00:00 2001 From: des Date: Sun, 8 Sep 2013 18:27:26 +0000 Subject: [PATCH] MFH (r254684, r254955): fix segfault on reload. MFH (r255156): silence an error message on non-IPv6 interfaces. Approved by: re (glebius) git-svn-id: svn://svn.freebsd.org/base/releng/9.2@255398 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- usr.sbin/rtadvd/config.c | 8 +++----- usr.sbin/rtadvd/if.c | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c index 681611f4..595ad0d3 100644 --- a/usr.sbin/rtadvd/config.c +++ b/usr.sbin/rtadvd/config.c @@ -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 in6_prefixreq *ipr) 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__, diff --git a/usr.sbin/rtadvd/if.c b/usr.sbin/rtadvd/if.c index b857356a..5413cdf4 100644 --- a/usr.sbin/rtadvd/if.c +++ b/usr.sbin/rtadvd/if.c @@ -394,8 +394,8 @@ update_ifinfo_nd_flags(struct ifinfo *ifi) 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; -- 2.42.0