chiark / gitweb /
test-dhcp-client: unref lease objects to make valgrind happy
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 11 Apr 2014 03:45:46 +0000 (23:45 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 12 Apr 2014 14:20:55 +0000 (10:20 -0400)
Also unref client objects in test code, and initalize logging,
to DEBUG by default.

src/libsystemd-network/sd-dhcp-client.c
src/libsystemd-network/sd-dhcp-lease.c
src/libsystemd-network/test-dhcp-client.c

index c67de71dd3216d4572dff70077125caa9f30c35f..489220326e90843872e246b7956ced1e6a6b24bd 100644 (file)
@@ -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;
 
         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_client_detach_event(client);
 
+                sd_dhcp_lease_unref(client->lease);
+
                 free(client->req_opts);
                 free(client);
 
                 free(client->req_opts);
                 free(client);
 
index 159bb502c87cac8975b510cc963313f55ae0e8ed..aa479ffe15b9382b9e702731b4f132fb97bf4b9f 100644 (file)
@@ -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) {
 }
 
 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)
 
         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->n_ref = REFCNT_INIT;
 
         *ret = lease;
-        lease = NULL;
-
         return 0;
 }
 
         return 0;
 }
 
index 9c316d75bcd07c7faa00f73d7ffdb90c2ee89a21..e7787fa0f110a622bfdc014df9c4d32813259c42 100644 (file)
@@ -29,6 +29,8 @@
 
 #include "util.h"
 #include "socket-util.h"
 
 #include "util.h"
 #include "socket-util.h"
+#include "sd-event.h"
+#include "event-util.h"
 
 #include "dhcp-protocol.h"
 #include "dhcp-internal.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);
         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)
 }
 
 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");
 
         if (verbose)
                 printf("  DHCP address acquired\n");
 
+        sd_dhcp_lease_unref(lease);
         sd_event_exit(e, 0);
 }
 
         sd_event_exit(e, 0);
 }
 
@@ -485,7 +490,11 @@ static void test_addr_acq(sd_event *e) {
 }
 
 int main(int argc, char *argv[]) {
 }
 
 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);
 
 
         assert_se(sd_event_new(&e) >= 0);