]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
dhcpv4 encode / decode does not support array of dns_label
authorAlan T. DeKok <aland@freeradius.org>
Sun, 17 Jan 2021 15:26:29 +0000 (10:26 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Sun, 17 Jan 2021 15:27:12 +0000 (10:27 -0500)
once the code is fixed, we will update the dictionaries

share/dictionary/dhcpv4/dictionary.rfc2131
src/protocols/dhcpv4/base.c

index 3909fdc0d12c255daf35a09571dad45e589a1605..f77f7b63e909303baa523c9b1632102f5f696ab2 100644 (file)
@@ -183,8 +183,8 @@ ATTRIBUTE   NDS-Tree-Name                   86      octets
 ATTRIBUTE      NDS-Context                     87      octets
 
 # RFC 4280 - Broadcast and Multicast Control Servers
-ATTRIBUTE      BCMS-Server-IPv4-FQDN           88      string array
-ATTRIBUTE      BCMS-Server-IPv4-Address                89      ipaddr array
+ATTRIBUTE      BCMS-Server-IPv4-FQDN           88      octets # really dns_label array
+ATTRIBUTE      BCMS-Server-IPv4-Address        89      ipaddr array
 
 # Authentication
 ATTRIBUTE      Authentication                  90      octets
@@ -273,9 +273,9 @@ ATTRIBUTE   MoS-IPv4-Address-CS             .2      ipaddr array
 ATTRIBUTE      MoS-IPv4-Address-ES             .3      ipaddr array
 
 ATTRIBUTE      MoS-IPv4-FQDN                   140     tlv
-ATTRIBUTE      MoS-IPv4-FQDN-IS                        .1      string array # and dns_label
-ATTRIBUTE      MoS-IPv4-FQDN-CS                        .2      string array # and dns_label
-ATTRIBUTE      MoS-IPv4-FQDN-ES                        .3      string array # and dns_label
+ATTRIBUTE      MoS-IPv4-FQDN-IS                        .1      octets # really dns_label array
+ATTRIBUTE      MoS-IPv4-FQDN-CS                        .2      octets # really dns_label array
+ATTRIBUTE      MoS-IPv4-FQDN-ES                        .3      octets # really dns_label array
 
 # RFC 6011 - SIP UA Configuration Service Domains
 ATTRIBUTE      SIP-UA-Configuration-Service-Domains 141        string
index 06e36a010050fb4f46cc41a5b4cfcfb4565f796a..5dc3480250bcdb63737265e2a05b6b11b365c975 100644 (file)
@@ -660,6 +660,11 @@ static fr_table_num_ordered_t const subtype_table[] = {
 static bool attr_valid(UNUSED fr_dict_t *dict, UNUSED fr_dict_attr_t const *parent,
                       UNUSED char const *name, UNUSED int attr, fr_type_t type, fr_dict_attr_flags_t *flags)
 {
+       if (flags->array && !flags->length) {
+               fr_strerror_const("Variable length attributes cannot be marked as 'array'");
+               return false;
+       }
+
        /*
         *      "extra" signifies that subtype is being used by the
         *      dictionaries itself.