[systemd-devel] [PATCH] sd-dhcp-client: prevent timer related memory leaks

Umut Tezduyar Lindskog umut.tezduyar at axis.com
Thu Feb 20 10:49:45 PST 2014


---
 src/libsystemd-dhcp/sd-dhcp-client.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/libsystemd-dhcp/sd-dhcp-client.c b/src/libsystemd-dhcp/sd-dhcp-client.c
index ec2b53f..84d38f0 100644
--- a/src/libsystemd-dhcp/sd-dhcp-client.c
+++ b/src/libsystemd-dhcp/sd-dhcp-client.c
@@ -392,6 +392,9 @@ static int client_timeout_resend(sd_event_source *s, uint64_t usec,
 
         next_timeout += (random_u32() & 0x1fffff);
 
+        if (client->timeout_resend)
+                client->timeout_resend = sd_event_source_unref(client->timeout_resend);
+
         r = sd_event_add_monotonic(client->event,
                                      &client->timeout_resend,
                                      next_timeout,
@@ -477,6 +480,9 @@ static int client_initialize_events(sd_dhcp_client *client,
         if (r < 0)
                 goto error;
 
+        if (client->timeout_resend)
+                client->timeout_resend = sd_event_source_unref(client->timeout_resend);
+
         r = sd_event_add_monotonic(client->event,
                                    &client->timeout_resend,
                                    usec, 0,
-- 
1.7.10.4



More information about the systemd-devel mailing list