Commit 8d9fb09b9e for openssl.org
commit 8d9fb09b9e7457346cd619779609c59ed0ee7ad9
Author: Bob Beck <beck@openssl.org>
Date: Thu May 14 17:50:49 2026 -0600
pass length in cmp_msg stuff
ossl_cmp_sk_ASN1_UTF8STRING_push_str depended under the covers on
passing a -1 to have strlen magically called in the setter. Don't
depend on this and simply pass in the correct length
Reviewed-by: Milan Broz <mbroz@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
MergeDate: Sat Jul 18 13:01:17 2026
(Merged from https://github.com/openssl/openssl/pull/31194)
diff --git a/crypto/cmp/cmp_local.h b/crypto/cmp/cmp_local.h
index e664a6ae22..ac892f62bd 100644
--- a/crypto/cmp/cmp_local.h
+++ b/crypto/cmp/cmp_local.h
@@ -819,7 +819,7 @@ int ossl_cmp_X509_STORE_add1_certs(X509_STORE *store, STACK_OF(X509) *certs,
int only_self_issued);
STACK_OF(X509) *ossl_cmp_X509_STORE_get1_certs(X509_STORE *store);
int ossl_cmp_sk_ASN1_UTF8STRING_push_str(STACK_OF(ASN1_UTF8STRING) *sk,
- const char *text, int len);
+ const char *text, size_t len);
int ossl_cmp_asn1_octet_string_set1(ASN1_OCTET_STRING **tgt,
const ASN1_OCTET_STRING *src);
int ossl_cmp_asn1_octet_string_set1_bytes(ASN1_OCTET_STRING **tgt,
diff --git a/crypto/cmp/cmp_msg.c b/crypto/cmp/cmp_msg.c
index fec747458d..abea670ce9 100644
--- a/crypto/cmp/cmp_msg.c
+++ b/crypto/cmp/cmp_msg.c
@@ -824,13 +824,13 @@ OSSL_CMP_MSG *ossl_cmp_error_new(OSSL_CMP_CTX *ctx, const OSSL_CMP_PKISI *si,
goto err;
msg->body->value.error->errorDetails = ft;
if (lib != NULL && *lib != '\0'
- && !ossl_cmp_sk_ASN1_UTF8STRING_push_str(ft, lib, -1))
+ && !ossl_cmp_sk_ASN1_UTF8STRING_push_str(ft, lib, strlen(lib)))
goto err;
if (reason != NULL && *reason != '\0'
- && !ossl_cmp_sk_ASN1_UTF8STRING_push_str(ft, reason, -1))
+ && !ossl_cmp_sk_ASN1_UTF8STRING_push_str(ft, reason, strlen(reason)))
goto err;
if (details != NULL
- && !ossl_cmp_sk_ASN1_UTF8STRING_push_str(ft, details, -1))
+ && !ossl_cmp_sk_ASN1_UTF8STRING_push_str(ft, details, strlen(details)))
goto err;
}
diff --git a/crypto/cmp/cmp_util.c b/crypto/cmp/cmp_util.c
index 5c710addf2..c658529c7e 100644
--- a/crypto/cmp/cmp_util.c
+++ b/crypto/cmp/cmp_util.c
@@ -219,7 +219,7 @@ int ossl_cmp_X509_STORE_add1_certs(X509_STORE *store, STACK_OF(X509) *certs,
}
int ossl_cmp_sk_ASN1_UTF8STRING_push_str(STACK_OF(ASN1_UTF8STRING) *sk,
- const char *text, int len)
+ const char *text, size_t len)
{
ASN1_UTF8STRING *utf8string;