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;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to