[systemd-devel] [PATCH] dd-dhcp-server: fix a leak
Thomas H.P. Andersen
phomes at gmail.com
Fri Jun 13 13:58:12 PDT 2014
From: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
We must use free instead of dhcp_lease_free here to avoid freeing
client_id.data.
---
src/libsystemd-network/sd-dhcp-server.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/libsystemd-network/sd-dhcp-server.c b/src/libsystemd-network/sd-dhcp-server.c
index 17c19cc..38f93c1 100644
--- a/src/libsystemd-network/sd-dhcp-server.c
+++ b/src/libsystemd-network/sd-dhcp-server.c
@@ -694,8 +694,10 @@ int dhcp_server_handle_message(sd_dhcp_server *server, DHCPMessage *message,
lease->address = req->requested_ip;
lease->client_id.data = memdup(req->client_id.data,
req->client_id.length);
- if (!lease->client_id.data)
+ if (!lease->client_id.data) {
+ free(lease);
return -ENOMEM;
+ }
lease->client_id.length = req->client_id.length;
} else
lease = existing_lease;
--
1.9.3
More information about the systemd-devel
mailing list