diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 11337126e5..582069cf39 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -811,8 +811,10 @@ static int address_update(Address *address) { link->ipv6ll_address = address->in_addr.in6; r = link_ipv6ll_gained(link); - if (r < 0) + if (r < 0) { + link->ipv6ll_address = (const struct in6_addr) {}; return r; + } } if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) diff --git a/src/sysupdate/sysupdate-transfer.c b/src/sysupdate/sysupdate-transfer.c index 4d698d620f..f7e257e041 100644 --- a/src/sysupdate/sysupdate-transfer.c +++ b/src/sysupdate/sysupdate-transfer.c @@ -838,7 +838,7 @@ int transfer_vacuum( r = transfer_instance_vacuum(t, instance); if (r < 0) - return 0; + return r; instance_free(instance); memmove(t->target.instances + i, t->target.instances + i + 1, (t->target.n_instances - i - 1) * sizeof(Instance*)); @@ -937,7 +937,7 @@ int transfer_vacuum( r = transfer_instance_vacuum(t, oldest); if (r < 0) - return 0; + return r; instance_free(oldest); memmove(t->target.instances + p, t->target.instances + p + 1, (t->target.n_instances - p - 1) * sizeof(Instance*));