From: Yu Watanabe Date: Thu, 14 Jul 2022 01:13:00 +0000 (+0900) Subject: sd-dhcp6-client: allow NULL option value when length is zero X-Git-Tag: v252-rc1~661^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d81b5a191e6f06fe51befe7c7fb20cff4ff4f762;p=thirdparty%2Fsystemd.git sd-dhcp6-client: allow NULL option value when length is zero --- diff --git a/src/libsystemd-network/dhcp6-option.c b/src/libsystemd-network/dhcp6-option.c index 63d3f60513a..0f462495335 100644 --- a/src/libsystemd-network/dhcp6-option.c +++ b/src/libsystemd-network/dhcp6-option.c @@ -525,7 +525,7 @@ int dhcp6_option_parse( } int dhcp6_option_parse_status(const uint8_t *data, size_t data_len, char **ret_status_message) { - assert(data); + assert(data || data_len == 0); if (data_len < sizeof(uint16_t)) return -EBADMSG; @@ -803,7 +803,7 @@ int dhcp6_option_parse_addresses( struct in6_addr **addrs, size_t *count) { - assert(optval); + assert(optval || optlen == 0); assert(addrs); assert(count); @@ -826,8 +826,8 @@ static int parse_domain(const uint8_t **data, size_t *len, char **ret) { int r; assert(data); - assert(*data); assert(len); + assert(*data || *len == 0); assert(ret); optval = *data; @@ -891,7 +891,7 @@ int dhcp6_option_parse_domainname(const uint8_t *optval, size_t optlen, char **r _cleanup_free_ char *domain = NULL; int r; - assert(optval); + assert(optval || optlen == 0); assert(ret); r = parse_domain(&optval, &optlen, &domain); @@ -910,7 +910,7 @@ int dhcp6_option_parse_domainname_list(const uint8_t *optval, size_t optlen, cha _cleanup_strv_free_ char **names = NULL; int r; - assert(optval); + assert(optval || optlen == 0); assert(ret); if (optlen <= 1)