]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
use macro instead of oddly named field
authorAlan T. DeKok <aland@freeradius.org>
Thu, 16 Mar 2023 15:21:04 +0000 (11:21 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 17 Mar 2023 15:40:11 +0000 (11:40 -0400)
src/lib/util/dict.h
src/lib/util/struct.c

index 6bd8482fe9edde18971321cdea00657a8f751f5d..e5e4af0b0c703c6fd41edf9c941ba2945ce3da8d 100644 (file)
@@ -145,6 +145,7 @@ enum {
 #define fr_dict_attr_is_key_field(_da) ((_da)->flags.extra && ((_da)->flags.subtype == FLAG_KEY_FIELD))
 #define da_is_bit_field(_da) ((_da)->flags.extra && ((_da)->flags.subtype == FLAG_BIT_FIELD))
 #define da_is_length_field(_da) ((_da)->flags.extra && (((_da)->flags.subtype == FLAG_LENGTH_UINT8) || ((_da)->flags.subtype == FLAG_LENGTH_UINT16)))
+#define da_length_offset(_da) ((_da)->flags.type_size)
 
 
 /** Extension identifier
index 9429894f16fed92df8f3a665ef391bf548875c43..efa3cd39f69dd6f6f093188ae6c09e7fe841ed53 100644 (file)
@@ -97,13 +97,13 @@ ssize_t fr_struct_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out,
                        struct_len |= p[1];
                }
 
-               if (struct_len < parent->flags.type_size) {
+               if (struct_len < da_length_offset(parent)) {
                        FR_PROTO_TRACE("Length header (%zu) is smaller than minimum value (%u)",
                                       struct_len, parent->flags.type_size);
                        goto unknown;
                }
 
-               if ((p + struct_len + need - parent->flags.type_size) > end) {
+               if ((p + struct_len + need - da_length_offset(parent)) > end) {
                        FR_PROTO_TRACE("Length header (%zu) is larger than remaining data (%zu)",
                                       struct_len + need, (end - p));
                        goto unknown;
@@ -818,7 +818,7 @@ done:
                if (parent->flags.subtype == FLAG_LENGTH_UINT8) {
                        length -= 1;
 
-                       length += parent->flags.type_size;
+                       length += da_length_offset(parent);
 
                        if (length > UINT8_MAX) return -1;
 
@@ -826,7 +826,7 @@ done:
                } else {
                        length -= 2;
 
-                       length += parent->flags.type_size;
+                       length += da_length_offset(parent);
 
                        if (length > UINT16_MAX) return -1;