From 9aa99c0c9aca84c0301a3c3401f86cf6fdfd2fcd Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Fri, 19 Jan 2024 11:12:23 -0600 Subject: [PATCH] src/tls13.c: in DoTls13CertificateVerify(), add missing error handling in several calls to CreateSigData(). --- src/tls13.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/tls13.c b/src/tls13.c index 20f066f58..d1f922210 100644 --- a/src/tls13.c +++ b/src/tls13.c @@ -9882,8 +9882,9 @@ static int DoTls13CertificateVerify(WOLFSSL* ssl, byte* input, ERROR_OUT(MEMORY_E, exit_dcv); } - CreateSigData(ssl, args->sigData, &args->sigDataSz, 1); - ret = 0; + ret = CreateSigData(ssl, args->sigData, &args->sigDataSz, 1); + if (ret < 0) + goto exit_dcv; } #endif #ifdef HAVE_ED448 @@ -9896,8 +9897,9 @@ static int DoTls13CertificateVerify(WOLFSSL* ssl, byte* input, ERROR_OUT(MEMORY_E, exit_dcv); } - CreateSigData(ssl, args->sigData, &args->sigDataSz, 1); - ret = 0; + ret = CreateSigData(ssl, args->sigData, &args->sigDataSz, 1); + if (ret < 0) + goto exit_dcv; } #endif #ifdef HAVE_PQC @@ -9909,7 +9911,11 @@ static int DoTls13CertificateVerify(WOLFSSL* ssl, byte* input, ERROR_OUT(MEMORY_E, exit_dcv); } - CreateSigData(ssl, sigData, &sigDataSz, 1); + ret = CreateSigData(ssl, sigData, &sigDataSz, 1); + if (ret < 0) { + goto exit_dcv; + } + #ifdef WOLFSSL_DUAL_ALG_CERTS if (!wolfSSL_is_server(ssl) && ssl->sigSpec != NULL &&