chiark / gitweb /
sd-dhcp-client: prevent timer related memory leaks
[elogind.git] / src / libsystemd-dhcp / sd-dhcp-client.c
index ec2b53ffe19781ce843a9abbba094e106215bd4b..53abe2225720b1d91242bd0eb04725c0c2703c73 100644 (file)
@@ -392,6 +392,8 @@ static int client_timeout_resend(sd_event_source *s, uint64_t usec,
 
         next_timeout += (random_u32() & 0x1fffff);
 
+        client->timeout_resend = sd_event_source_unref(client->timeout_resend);
+
         r = sd_event_add_monotonic(client->event,
                                      &client->timeout_resend,
                                      next_timeout,
@@ -477,6 +479,8 @@ static int client_initialize_events(sd_dhcp_client *client,
         if (r < 0)
                 goto error;
 
+        client->timeout_resend = sd_event_source_unref(client->timeout_resend);
+
         r = sd_event_add_monotonic(client->event,
                                    &client->timeout_resend,
                                    usec, 0,