]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-dhcp-client: avoid taking and dropping a reference
authorZbigniew Jędrzejewski-Szmek <zbyszek@amutable.com>
Thu, 7 May 2026 20:34:11 +0000 (22:34 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@amutable.com>
Fri, 8 May 2026 09:14:32 +0000 (11:14 +0200)
The helper would create a new ref, even though we had one handy
and didn't need to create a new ref. So change the helper to
take an existing reference.

src/libsystemd-network/dhcp-lease-internal.h
src/libsystemd-network/sd-dhcp-client.c

index 1eab7f89b616cc663b79aa66a4cddde3d81847bb..3f5d638d67d394a016b28b7915cc87982ad2c4af 100644 (file)
@@ -97,5 +97,5 @@ void dhcp_lease_set_timestamp(sd_dhcp_lease *lease, const triple_timestamp *time
 int dhcp_lease_set_default_subnet_mask(sd_dhcp_lease *lease);
 int dhcp_lease_set_client_id(sd_dhcp_lease *lease, const sd_dhcp_client_id *client_id);
 
-#define dhcp_lease_unref_and_replace_new_ref(a, b)                      \
-        unref_and_replace_new_ref(a, b, sd_dhcp_lease_ref, sd_dhcp_lease_unref)
+#define dhcp_lease_unref_and_replace(a, b)                              \
+        free_and_replace_full(a, b, sd_dhcp_lease_unref)
index 922dd5881ca9ed7bc1178794810dfbf43c2db916..c6a4d02f965a46b2065c3009fbb80e96d75354f4 100644 (file)
@@ -1594,7 +1594,7 @@ static int client_handle_offer_or_rapid_ack(sd_dhcp_client *client, DHCPMessage
 
         dhcp_lease_set_timestamp(lease, timestamp);
 
-        dhcp_lease_unref_and_replace_new_ref(client->lease, lease);
+        dhcp_lease_unref_and_replace(client->lease, lease);
 
         if (client->lease->rapid_commit) {
                 log_dhcp_client(client, "ACK");
@@ -1678,7 +1678,7 @@ static int client_handle_ack(sd_dhcp_client *client, DHCPMessage *message, size_
         else
                 r = SD_DHCP_CLIENT_EVENT_IP_CHANGE;
 
-        dhcp_lease_unref_and_replace_new_ref(client->lease, lease);
+        dhcp_lease_unref_and_replace(client->lease, lease);
 
         log_dhcp_client(client, "ACK");
         return r;