]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dhcp-server: add two missing OOM checks
authorLennart Poettering <lennart@poettering.net>
Thu, 9 Feb 2017 09:16:52 +0000 (10:16 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 9 Feb 2017 15:12:03 +0000 (16:12 +0100)
src/libsystemd-network/sd-dhcp-server.c

index 289068156179d720a8a5d6e0ea4f9b6e6741e52b..315cbf1ac5d0a58a8ab5a405b4ae4410cb4e27de 100644 (file)
@@ -197,7 +197,11 @@ int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex) {
         server->address = htobe32(INADDR_ANY);
         server->netmask = htobe32(INADDR_ANY);
         server->ifindex = ifindex;
+
         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->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) {
                                 lease = new0(DHCPLease, 1);
+                                if (!lease)
+                                        return -ENOMEM;
                                 lease->address = address;
                                 lease->client_id.data = memdup(req->client_id.data,
                                                                req->client_id.length);