mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 03:07:29 +02:00
Fix memory leak if the function is being called again because of a retry
This commit is contained in:
27
src/tls13.c
27
src/tls13.c
@ -8665,19 +8665,22 @@ static int SendTls13CertificateVerify(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
EncodeSigAlg(ssl->options.hashAlgo, args->sigAlgo, args->verify);
|
EncodeSigAlg(ssl->options.hashAlgo, args->sigAlgo, args->verify);
|
||||||
|
|
||||||
if (ssl->hsType == DYNAMIC_TYPE_RSA) {
|
|
||||||
int sigLen = MAX_SIG_DATA_SZ;
|
|
||||||
if (args->length > MAX_SIG_DATA_SZ)
|
|
||||||
sigLen = args->length;
|
|
||||||
args->sigData = (byte*)XMALLOC(sigLen, ssl->heap,
|
|
||||||
DYNAMIC_TYPE_SIGNATURE);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
args->sigData = (byte*)XMALLOC(MAX_SIG_DATA_SZ, ssl->heap,
|
|
||||||
DYNAMIC_TYPE_SIGNATURE);
|
|
||||||
}
|
|
||||||
if (args->sigData == NULL) {
|
if (args->sigData == NULL) {
|
||||||
ERROR_OUT(MEMORY_E, exit_scv);
|
if (ssl->hsType == DYNAMIC_TYPE_RSA) {
|
||||||
|
int sigLen = MAX_SIG_DATA_SZ;
|
||||||
|
if (args->length > MAX_SIG_DATA_SZ)
|
||||||
|
sigLen = args->length;
|
||||||
|
args->sigData = (byte*)XMALLOC(sigLen, ssl->heap,
|
||||||
|
DYNAMIC_TYPE_SIGNATURE);
|
||||||
|
args->sigDataSz = sigLen;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
args->sigData = (byte*)XMALLOC(MAX_SIG_DATA_SZ, ssl->heap,
|
||||||
|
DYNAMIC_TYPE_SIGNATURE);
|
||||||
|
}
|
||||||
|
if (args->sigData == NULL) {
|
||||||
|
ERROR_OUT(MEMORY_E, exit_scv);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create the data to be signed. */
|
/* Create the data to be signed. */
|
||||||
|
Reference in New Issue
Block a user