diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 747acfe6c5..b09d75e615 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -355,11 +355,8 @@ int address_update( int r; assert(address); + assert(address->link); assert(cinfo); - assert_return(address->link, 1); - - if (IN_SET(address->link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) - return 1; ready = address_is_ready(address); @@ -367,6 +364,9 @@ int address_update( address->scope = scope; address->cinfo = *cinfo; + if (IN_SET(address->link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) + return 0; + link_update_operstate(address->link, true); link_check_ready(address->link);