mbedtls_pem_write_buffer: Correctly report needed buffer size for all possible line lengths and counts

Signed-off-by: Jethro Beekman <jethro@fortanix.com>
This commit is contained in:
Jethro Beekman 2023-05-03 14:49:28 +02:00
parent f57273c817
commit 746df88e90
3 changed files with 33 additions and 1 deletions

View file

@ -491,7 +491,7 @@ int mbedtls_pem_write_buffer(const char *header, const char *footer,
size_t len = 0, use_len, add_len = 0;
mbedtls_base64_encode(NULL, 0, &use_len, der_data, der_len);
add_len = strlen(header) + strlen(footer) + (use_len / 64) + 1;
add_len = strlen(header) + strlen(footer) + (((use_len > 2) ? (use_len - 2) : 0) / 64) + 1;
if (use_len + add_len > buf_len) {
*olen = use_len + add_len;