@@ -1964,27 +1964,34 @@ struct net_if_addr *net_if_ipv6_addr_add(struct net_if *iface,
19641964bool net_if_ipv6_addr_rm (struct net_if * iface , const struct in6_addr * addr )
19651965{
19661966 struct net_if_ipv6 * ipv6 ;
1967+ bool result = true;
19671968 int ret ;
19681969
19691970 NET_ASSERT (addr );
19701971
1972+ net_if_lock (iface );
1973+
19711974 ipv6 = iface -> config .ip .ipv6 ;
19721975 if (!ipv6 ) {
1973- return false;
1976+ result = false;
1977+ goto out ;
19741978 }
19751979
19761980 ret = net_if_addr_unref (iface , AF_INET6 , addr );
19771981 if (ret > 0 ) {
19781982 NET_DBG ("Address %s still in use (ref %d)" ,
19791983 net_sprint_ipv6_addr (addr ), ret );
1980- return false;
1981-
1984+ result = false;
1985+ goto out ;
19821986 } else if (ret < 0 ) {
19831987 NET_DBG ("Address %s not found (%d)" ,
19841988 net_sprint_ipv6_addr (addr ), ret );
19851989 }
19861990
1987- return true;
1991+ out :
1992+ net_if_unlock (iface );
1993+
1994+ return result ;
19881995}
19891996
19901997bool z_impl_net_if_ipv6_addr_add_by_index (int index ,
@@ -4325,27 +4332,34 @@ struct net_if_addr *net_if_ipv4_addr_add(struct net_if *iface,
43254332bool net_if_ipv4_addr_rm (struct net_if * iface , const struct in_addr * addr )
43264333{
43274334 struct net_if_ipv4 * ipv4 ;
4335+ bool result = true;
43284336 int ret ;
43294337
43304338 NET_ASSERT (addr );
43314339
4340+ net_if_lock (iface );
4341+
43324342 ipv4 = iface -> config .ip .ipv4 ;
43334343 if (!ipv4 ) {
4334- return false;
4344+ result = false;
4345+ goto out ;
43354346 }
43364347
43374348 ret = net_if_addr_unref (iface , AF_INET , addr );
43384349 if (ret > 0 ) {
43394350 NET_DBG ("Address %s still in use (ref %d)" ,
43404351 net_sprint_ipv4_addr (addr ), ret );
4341- return false;
4342-
4352+ result = false;
4353+ goto out ;
43434354 } else if (ret < 0 ) {
43444355 NET_DBG ("Address %s not found (%d)" ,
43454356 net_sprint_ipv4_addr (addr ), ret );
43464357 }
43474358
4348- return true;
4359+ out :
4360+ net_if_unlock (iface );
4361+
4362+ return result ;
43494363}
43504364
43514365bool z_impl_net_if_ipv4_addr_add_by_index (int index ,
0 commit comments