From 456c53730d21b1fad0c7f72c1817999fba93d077 Mon Sep 17 00:00:00 2001 From: Florian Van Heghe Date: Wed, 1 Dec 2021 12:37:42 +0100 Subject: [PATCH] mbedTLS: include NULL byte in blob data length for CURLOPT_CAINFO_BLOB Fixes #8079 Closes #8081 --- lib/vtls/mbedtls.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c index ba5c5d7566..7f1ff198c1 100644 --- a/lib/vtls/mbedtls.c +++ b/lib/vtls/mbedtls.c @@ -320,9 +320,14 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn, mbedtls_x509_crt_init(&backend->cacert); if(ca_info_blob) { - const unsigned char *blob_data = (const unsigned char *)ca_info_blob->data; + unsigned char *blob_data = (unsigned char *)ca_info_blob->data; + + /* mbedTLS expects the terminating NULL byte to be included in the length + of the data */ + size_t blob_data_len = ca_info_blob->len + 1; + ret = mbedtls_x509_crt_parse(&backend->cacert, blob_data, - ca_info_blob->len); + blob_data_len); if(ret<0) { mbedtls_strerror(ret, errorbuf, sizeof(errorbuf)); -- 2.47.3