]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-dhcp-client: do not call assert in public functions 13836/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 24 Oct 2019 10:04:48 +0000 (12:04 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 24 Oct 2019 10:04:48 +0000 (12:04 +0200)
src/libsystemd-network/sd-dhcp-client.c

index 9652f70cc0096e844f4ae7767bc36cbf19e2a1a6..1c5de5392ca7ebed69d3e92dc5884104a508e9b0 100644 (file)
@@ -548,7 +548,8 @@ static sd_dhcp_option* dhcp_option_free(sd_dhcp_option *i) {
 }
 
 int sd_dhcp_option_new(uint8_t option, void *data, size_t length, sd_dhcp_option **ret) {
-        assert(ret);
+        assert_return(ret, -EINVAL);
+        assert_return(length == 0 || data, -EINVAL);
 
         _cleanup_free_ void *q = memdup(data, length);
         if (!q)
@@ -2047,7 +2048,8 @@ sd_event *sd_dhcp_client_get_event(sd_dhcp_client *client) {
 }
 
 static sd_dhcp_client *dhcp_client_free(sd_dhcp_client *client) {
-        assert(client);
+        if (!client)
+                return NULL;
 
         log_dhcp_client(client, "FREE");
 
@@ -2073,11 +2075,9 @@ static sd_dhcp_client *dhcp_client_free(sd_dhcp_client *client) {
 DEFINE_TRIVIAL_REF_UNREF_FUNC(sd_dhcp_client, sd_dhcp_client, dhcp_client_free);
 
 int sd_dhcp_client_new(sd_dhcp_client **ret, int anonymize) {
-        _cleanup_(sd_dhcp_client_unrefp) sd_dhcp_client *client = NULL;
-
         assert_return(ret, -EINVAL);
 
-        client = new(sd_dhcp_client, 1);
+        _cleanup_(sd_dhcp_client_unrefp) sd_dhcp_client *client = new(sd_dhcp_client, 1);
         if (!client)
                 return -ENOMEM;