From 8fd98d6e62a653a01ea096702b11149e016a7038 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 27 Jun 2023 15:17:44 +0100 Subject: [PATCH] Return an error when no name is parsed When less than 1 RDN is successfully parsed in mbedtls_x509_string_to_names(), return an error. Previously this returned success when a string containing neither '=' or ',' was supplied. Signed-off-by: David Horstmann --- library/x509_create.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/x509_create.c b/library/x509_create.c index 50db95688f..cdfc82aa5d 100644 --- a/library/x509_create.c +++ b/library/x509_create.c @@ -125,7 +125,7 @@ static const x509_attr_descriptor_t *x509_attr_descr_from_name(const char *name, int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *name) { - int ret = 0; + int ret = MBEDTLS_ERR_X509_INVALID_NAME; const char *s = name, *c = s; const char *end = s + strlen(s); const char *oid = NULL; @@ -177,6 +177,9 @@ int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *nam s = c + 1; in_tag = 1; + + /* Successfully parsed one name, update ret to success */ + ret = 0; } if (!in_tag && s != c + 1) {