From: Yu Watanabe Date: Sun, 6 Feb 2022 13:35:17 +0000 (+0900) Subject: sd-dhcp6-client: disable event source when client is stopped or freed X-Git-Tag: v251-rc1~291^2~43 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d0875a07dd8d2f0238ed33ce77c04a34b891780f;p=thirdparty%2Fsystemd.git sd-dhcp6-client: disable event source when client is stopped or freed --- diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c index 03b1c918df9..ff7e04bbdc6 100644 --- a/src/libsystemd-network/sd-dhcp6-client.c +++ b/src/libsystemd-network/sd-dhcp6-client.c @@ -589,8 +589,7 @@ static void client_reset(sd_dhcp6_client *client) { client->lease = sd_dhcp6_lease_unref(client->lease); - client->receive_message = - sd_event_source_unref(client->receive_message); + client->receive_message = sd_event_source_disable_unref(client->receive_message); client->transaction_id = 0; client->transaction_start = 0; @@ -1497,12 +1496,13 @@ sd_event *sd_dhcp6_client_get_event(sd_dhcp6_client *client) { static sd_dhcp6_client *dhcp6_client_free(sd_dhcp6_client *client) { assert(client); - client->timeout_resend = sd_event_source_unref(client->timeout_resend); - client->timeout_resend_expire = sd_event_source_unref(client->timeout_resend_expire); - client->timeout_t1 = sd_event_source_unref(client->timeout_t1); - client->timeout_t2 = sd_event_source_unref(client->timeout_t2); + sd_dhcp6_lease_unref(client->lease); - client_reset(client); + sd_event_source_disable_unref(client->receive_message); + sd_event_source_disable_unref(client->timeout_resend); + sd_event_source_disable_unref(client->timeout_resend_expire); + sd_event_source_disable_unref(client->timeout_t1); + sd_event_source_disable_unref(client->timeout_t2); client->fd = safe_close(client->fd);