dhcp6: fix buffer size checking
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 27 Sep 2018 14:48:51 +0000 (23:48 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 27 Sep 2018 14:48:51 +0000 (23:48 +0900)
src/libsystemd-network/sd-dhcp6-client.c

index 6e7ccce..7899436 100644 (file)
@@ -844,8 +844,8 @@ static int client_parse_message(
                 uint8_t *optval;
                 be32_t iaid_lease;
 
-                if (len < offsetof(DHCP6Option, data) ||
-                    len < offsetof(DHCP6Option, data) + be16toh(option->len))
+                if (len < pos + offsetof(DHCP6Option, data) ||
+                    len < pos + offsetof(DHCP6Option, data) + be16toh(option->len))
                         return -ENOBUFS;
 
                 optcode = be16toh(option->code);