From 39868ab1bf1166b31ed8cd14cc4c8f64b5d94737 Mon Sep 17 00:00:00 2001 From: Pauli Date: Thu, 17 Jul 2025 11:13:56 +1000 Subject: [PATCH] params: emit an error if a parameter array overflows This is in addition to returning an error code. Reviewed-by: Shane Lontis Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/27923) --- util/perl/OpenSSL/paramnames.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/util/perl/OpenSSL/paramnames.pm b/util/perl/OpenSSL/paramnames.pm index 76efdd1f943..1d0dbdf70e5 100644 --- a/util/perl/OpenSSL/paramnames.pm +++ b/util/perl/OpenSSL/paramnames.pm @@ -653,8 +653,11 @@ sub trie_matched { my $indent2 = shift; if (defined($num)) { - printf "%sif (ossl_unlikely(r->num_%s >= %s))\n", $indent1, $field, $num; + printf "%sif (ossl_unlikely(r->num_%s >= %s)) {\n", $indent1, $field, $num; + printf "%sERR_raise_data(ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS,\n", $indent2; + printf "%s \"param %%s present >%%d times\", s, $num);\n", $indent2; printf "%sreturn 0;\n", $indent2; + printf "%s}\n", $indent1; printf "%sr->%s[r->num_%s++] = (OSSL_PARAM *)p;\n", $indent1, $field, $field; } else { printf "%sif (ossl_likely(r->%s == NULL))\n", $indent1, $field; -- 2.47.2