]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-dhcp6-client: fix DUID data length passed to hexmem() 30028/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 15 Nov 2023 04:46:31 +0000 (13:46 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 15 Nov 2023 05:41:02 +0000 (14:41 +0900)
Fixes a bug introduced by 6b7d5b6eaf9029b88771ae0ba3cf3c95adb3c24d.

src/libsystemd-network/sd-dhcp6-client.c

index 08b8676850a10257d3fc07559e5d5d147e176f82..c339dfbec2e9f6d3cf32aa8a85b660c6a3dea4ca 100644 (file)
@@ -276,7 +276,7 @@ int sd_dhcp6_client_duid_as_string(
         int r;
 
         assert_return(client, -EINVAL);
-        assert_return(client->duid_len > 0, -ENODATA);
+        assert_return(client->duid_len > offsetof(struct duid, raw.data), -ENODATA);
         assert_return(duid, -EINVAL);
 
         v = duid_type_to_string(be16toh(client->duid.type));
@@ -290,7 +290,7 @@ int sd_dhcp6_client_duid_as_string(
                         return -ENOMEM;
         }
 
-        t = hexmem(&client->duid.raw.data, client->duid_len);
+        t = hexmem(client->duid.raw.data, client->duid_len - offsetof(struct duid, raw.data));
         if (!t)
                 return -ENOMEM;