On Thu, Sep 11, 2014 at 10:49:33AM +0200, Martin Pieuchot wrote:
> --- netinet6/in6.c    26 Aug 2014 21:44:29 -0000      1.140
> +++ netinet6/in6.c    11 Sep 2014 08:45:29 -0000
> @@ -561,8 +560,10 @@ in6_control(struct socket *so, u_long cm
>       }
>  
>       case SIOCDIFADDR_IN6:
> +             s = splsoftnet();
>               in6_purgeaddr(&ia6->ia_ifa);
>               dohooks(ifp->if_addrhooks, 0);
> +             splx(s);
>               break;
>  
>       default:

In IPv4 all dohooks(if_addrhooks) are protected by a large splsoftnet().
A few lines above in SIOCAIFADDR_IN6 this is not the case.  The
hook carp_addr_updated() looks like it would need an splsoftnet()
as it is looping over if_addrlist.

But this is not part of this diff.

OK bluhm@

Reply via email to