]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
ensure that string/octet arrays are marked as "length=uint16"
authorAlan T. DeKok <aland@freeradius.org>
Tue, 8 Mar 2022 21:44:42 +0000 (16:44 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 8 Mar 2022 21:44:42 +0000 (16:44 -0500)
src/protocols/dhcpv6/base.c

index 744c8678ed3bbda60c4ea4814e137ef60920815a..600d103f680b9ba9b10649c6075a47f48b754ea7 100644 (file)
@@ -1028,6 +1028,11 @@ static bool attr_valid(UNUSED fr_dict_t *dict, UNUSED fr_dict_attr_t const *pare
         */
        if (flags->array && ((type == FR_TYPE_STRING) || (type == FR_TYPE_OCTETS))) {
                flags->is_known_width = true;
+
+               if (flags->extra && (flags->subtype != FLAG_LENGTH_UINT16)) {
+                       fr_strerror_const("string/octets arrays require the 'length=uint16' flag");
+                       return false;
+               }
        }
 
        /*