From: Thomas Hindoe Paaboel Andersen <[email protected]>
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
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel