]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
differentiate "number too large" from "unknown child"
authorAlan T. DeKok <aland@freeradius.org>
Wed, 17 Dec 2025 09:41:50 +0000 (10:41 +0100)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 18 Dec 2025 08:11:05 +0000 (09:11 +0100)
src/lib/util/dict_unknown.c

index b3f8fe232c9beaf6d70d889e4e0f6cb2992b10fb..ef823db109f6d81acf42710dedc74005f21ed552 100644 (file)
@@ -559,6 +559,17 @@ fr_slen_t fr_dict_attr_unknown_afrom_oid_substr(TALLOC_CTX *ctx,
                        }
                        break;
 
+               case FR_SBUFF_PARSE_ERROR_NUM_OVERFLOW:
+               {
+                       fr_sbuff_marker_t c_start;
+
+                       fr_sbuff_marker(&c_start, &our_in);
+                       fr_sbuff_adv_past_allowed(&our_in, FR_DICT_ATTR_MAX_NAME_LEN, fr_dict_attr_allowed_chars, NULL);
+                       fr_strerror_printf("Invalid value \"%.*s\" - attribute numbers must be less than 2^32",
+                                          (int)fr_sbuff_behind(&c_start), fr_sbuff_current(&c_start));
+                       goto error;
+               }
+
                default:
                {
                        fr_sbuff_marker_t c_start;