From: Alan T. DeKok Date: Tue, 29 Jul 2025 10:42:57 +0000 (-0400) Subject: verify FR_TYPE_ATTR X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f6b351c47b6ec88f1e6ed315ca223e644415b2b;p=thirdparty%2Ffreeradius-server.git verify FR_TYPE_ATTR --- diff --git a/src/lib/util/dict_validate.c b/src/lib/util/dict_validate.c index 38643c6f0d..46f36bc666 100644 --- a/src/lib/util/dict_validate.c +++ b/src/lib/util/dict_validate.c @@ -120,6 +120,10 @@ bool dict_attr_flags_valid(fr_dict_attr_t *da) case FR_TYPE_TIME_DELTA: break; + case FR_TYPE_ATTR: + flags->is_known_width = 1; + break; + case FR_TYPE_STRING: case FR_TYPE_OCTETS: if (!flags->length) { diff --git a/src/lib/util/pair.c b/src/lib/util/pair.c index 13e2f67016..cadb1acf6e 100644 --- a/src/lib/util/pair.c +++ b/src/lib/util/pair.c @@ -3110,6 +3110,15 @@ void fr_pair_verify(char const *file, int line, fr_pair_list_t const *list, fr_p file, line, vp->da->name, vp->da->parent->name, parent->da->name); } +#if 0 + /* + * We would like to enable this, but there's a + * lot of code like fr_pair_append_by_da() which + * creates the #fr_pair_t with no value. + */ + fr_value_box_verify(file, line, &vp->data); +#endif + } else { fr_pair_t *parent = fr_pair_parent(vp); diff --git a/src/lib/util/value.c b/src/lib/util/value.c index dbba61b79b..5dfc6f0a35 100644 --- a/src/lib/util/value.c +++ b/src/lib/util/value.c @@ -6598,6 +6598,13 @@ DIAG_ON(nonnull-compare) fr_value_box_list_verify(file, line, &vb->vb_group); break; + case FR_TYPE_ATTR: + if (vb->vb_attr) break; + + fr_fatal_assert_msg(vb->vb_void, "CONSISTENCY CHECK FAILED %s[%d]: fr_value_box_t vb_attr field " + "was NULL", file, line); + break; + default: break; }