From 6e00a80641aaba814204c65365c2fd5a90768394 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 10 Apr 2014 23:45:46 -0400 Subject: [PATCH] test-dhcp-client: unref lease objects to make valgrind happy Also unref client objects in test code, and initalize logging, to DEBUG by default. --- src/libsystemd-network/sd-dhcp-client.c | 3 +++ src/libsystemd-network/sd-dhcp-lease.c | 4 +--- src/libsystemd-network/test-dhcp-client.c | 11 ++++++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c index c67de71dd..489220326 100644 --- a/src/libsystemd-network/sd-dhcp-client.c +++ b/src/libsystemd-network/sd-dhcp-client.c @@ -805,6 +805,7 @@ static int client_handle_offer(sd_dhcp_client *client, DHCPMessage *offer, } } + sd_dhcp_lease_unref(client->lease); client->lease = lease; lease = NULL; @@ -1330,6 +1331,8 @@ sd_dhcp_client *sd_dhcp_client_unref(sd_dhcp_client *client) { sd_dhcp_client_detach_event(client); + sd_dhcp_lease_unref(client->lease); + free(client->req_opts); free(client); diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index 159bb502c..aa479ffe1 100644 --- a/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/libsystemd-network/sd-dhcp-lease.c @@ -271,7 +271,7 @@ int dhcp_lease_parse_options(uint8_t code, uint8_t len, const uint8_t *option, } int dhcp_lease_new(sd_dhcp_lease **ret) { - _cleanup_dhcp_lease_unref_ sd_dhcp_lease *lease = NULL; + sd_dhcp_lease *lease; lease = new0(sd_dhcp_lease, 1); if (!lease) @@ -280,8 +280,6 @@ int dhcp_lease_new(sd_dhcp_lease **ret) { lease->n_ref = REFCNT_INIT; *ret = lease; - lease = NULL; - return 0; } diff --git a/src/libsystemd-network/test-dhcp-client.c b/src/libsystemd-network/test-dhcp-client.c index 9c316d75b..e7787fa0f 100644 --- a/src/libsystemd-network/test-dhcp-client.c +++ b/src/libsystemd-network/test-dhcp-client.c @@ -29,6 +29,8 @@ #include "util.h" #include "socket-util.h" +#include "sd-event.h" +#include "event-util.h" #include "dhcp-protocol.h" #include "dhcp-internal.h" @@ -109,6 +111,8 @@ static void test_request_basic(sd_event *e) assert_se(sd_dhcp_client_set_request_option(client, 33) == -EEXIST); assert_se(sd_dhcp_client_set_request_option(client, 44) == 0); assert_se(sd_dhcp_client_set_request_option(client, 33) == -EEXIST); + + sd_dhcp_client_unref(client); } static void test_checksum(void) @@ -373,6 +377,7 @@ static void test_addr_acq_acquired(sd_dhcp_client *client, int event, if (verbose) printf(" DHCP address acquired\n"); + sd_dhcp_lease_unref(lease); sd_event_exit(e, 0); } @@ -485,7 +490,11 @@ static void test_addr_acq(sd_event *e) { } int main(int argc, char *argv[]) { - sd_event *e; + _cleanup_event_unref_ sd_event *e; + + log_set_max_level(LOG_DEBUG); + log_parse_environment(); + log_open(); assert_se(sd_event_new(&e) >= 0); -- 2.30.2