forked from wolfSSL/wolfssl
Fix memory leak if the function is being called again because of a retry
This commit is contained in:
@ -8665,12 +8665,14 @@ static int SendTls13CertificateVerify(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
EncodeSigAlg(ssl->options.hashAlgo, args->sigAlgo, args->verify);
|
EncodeSigAlg(ssl->options.hashAlgo, args->sigAlgo, args->verify);
|
||||||
|
|
||||||
|
if (args->sigData == NULL) {
|
||||||
if (ssl->hsType == DYNAMIC_TYPE_RSA) {
|
if (ssl->hsType == DYNAMIC_TYPE_RSA) {
|
||||||
int sigLen = MAX_SIG_DATA_SZ;
|
int sigLen = MAX_SIG_DATA_SZ;
|
||||||
if (args->length > MAX_SIG_DATA_SZ)
|
if (args->length > MAX_SIG_DATA_SZ)
|
||||||
sigLen = args->length;
|
sigLen = args->length;
|
||||||
args->sigData = (byte*)XMALLOC(sigLen, ssl->heap,
|
args->sigData = (byte*)XMALLOC(sigLen, ssl->heap,
|
||||||
DYNAMIC_TYPE_SIGNATURE);
|
DYNAMIC_TYPE_SIGNATURE);
|
||||||
|
args->sigDataSz = sigLen;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
args->sigData = (byte*)XMALLOC(MAX_SIG_DATA_SZ, ssl->heap,
|
args->sigData = (byte*)XMALLOC(MAX_SIG_DATA_SZ, ssl->heap,
|
||||||
@ -8679,6 +8681,7 @@ static int SendTls13CertificateVerify(WOLFSSL* ssl)
|
|||||||
if (args->sigData == NULL) {
|
if (args->sigData == NULL) {
|
||||||
ERROR_OUT(MEMORY_E, exit_scv);
|
ERROR_OUT(MEMORY_E, exit_scv);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Create the data to be signed. */
|
/* Create the data to be signed. */
|
||||||
ret = CreateSigData(ssl, args->sigData, &args->sigDataSz, 0);
|
ret = CreateSigData(ssl, args->sigData, &args->sigDataSz, 0);
|
||||||
|
Reference in New Issue
Block a user