1
0
mirror of https://github.com/systemd/systemd.git synced 2025-09-07 09:44:44 +03:00

dhcp-server: add two missing OOM checks

This commit is contained in:
Lennart Poettering
2017-02-09 10:16:52 +01:00
parent 1d450bda70
commit 357e1b17b9

View File

@@ -197,7 +197,11 @@ int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex) {
server->address = htobe32(INADDR_ANY); server->address = htobe32(INADDR_ANY);
server->netmask = htobe32(INADDR_ANY); server->netmask = htobe32(INADDR_ANY);
server->ifindex = ifindex; server->ifindex = ifindex;
server->leases_by_client_id = hashmap_new(&client_id_hash_ops); server->leases_by_client_id = hashmap_new(&client_id_hash_ops);
if (!server->leases_by_client_id)
return -ENOMEM;
server->default_lease_time = DIV_ROUND_UP(DHCP_DEFAULT_LEASE_TIME_USEC, USEC_PER_SEC); server->default_lease_time = DIV_ROUND_UP(DHCP_DEFAULT_LEASE_TIME_USEC, USEC_PER_SEC);
server->max_lease_time = DIV_ROUND_UP(DHCP_MAX_LEASE_TIME_USEC, USEC_PER_SEC); server->max_lease_time = DIV_ROUND_UP(DHCP_MAX_LEASE_TIME_USEC, USEC_PER_SEC);
@@ -857,6 +861,8 @@ int dhcp_server_handle_message(sd_dhcp_server *server, DHCPMessage *message,
if (!existing_lease) { if (!existing_lease) {
lease = new0(DHCPLease, 1); lease = new0(DHCPLease, 1);
if (!lease)
return -ENOMEM;
lease->address = address; lease->address = address;
lease->client_id.data = memdup(req->client_id.data, lease->client_id.data = memdup(req->client_id.data,
req->client_id.length); req->client_id.length);