Index: netinet6/nd6_rtr.c =================================================================== --- netinet6/nd6_rtr.c (revision 234664) +++ netinet6/nd6_rtr.c (working copy) @@ -1745,6 +1745,7 @@ } } error = a_failure; + a_failure = 1; if (error == 0) { pr->ndpr_stateflags &= ~NDPRF_ONLINK; @@ -1783,7 +1784,8 @@ &opr->ndpr_prefix.sin6_addr), opr->ndpr_plen, if_name(ifp), if_name(opr->ndpr_ifp), e)); - } + } else + a_failure = 0; } } } else { @@ -1795,6 +1797,10 @@ if_name(ifp), error)); } + if (a_failure) + lltable_prefix_free(AF_INET6, (struct sockaddr *)&sa6, + (struct sockaddr *)&mask6, LLE_STATIC); + return (error); }