Skip to content

Commit 2f63eb0

Browse files
author
Andras Fekete
committed
Fix memory leak if the function is being called again because of a retry
1 parent 971df19 commit 2f63eb0

1 file changed

Lines changed: 15 additions & 12 deletions

File tree

src/tls13.c

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8665,19 +8665,22 @@ static int SendTls13CertificateVerify(WOLFSSL* ssl)
86658665
}
86668666
EncodeSigAlg(ssl->options.hashAlgo, args->sigAlgo, args->verify);
86678667

8668-
if (ssl->hsType == DYNAMIC_TYPE_RSA) {
8669-
int sigLen = MAX_SIG_DATA_SZ;
8670-
if (args->length > MAX_SIG_DATA_SZ)
8671-
sigLen = args->length;
8672-
args->sigData = (byte*)XMALLOC(sigLen, ssl->heap,
8673-
DYNAMIC_TYPE_SIGNATURE);
8674-
}
8675-
else {
8676-
args->sigData = (byte*)XMALLOC(MAX_SIG_DATA_SZ, ssl->heap,
8677-
DYNAMIC_TYPE_SIGNATURE);
8678-
}
86798668
if (args->sigData == NULL) {
8680-
ERROR_OUT(MEMORY_E, exit_scv);
8669+
if (ssl->hsType == DYNAMIC_TYPE_RSA) {
8670+
int sigLen = MAX_SIG_DATA_SZ;
8671+
if (args->length > MAX_SIG_DATA_SZ)
8672+
sigLen = args->length;
8673+
args->sigData = (byte*)XMALLOC(sigLen, ssl->heap,
8674+
DYNAMIC_TYPE_SIGNATURE);
8675+
args->sigDataSz = sigLen;
8676+
}
8677+
else {
8678+
args->sigData = (byte*)XMALLOC(MAX_SIG_DATA_SZ, ssl->heap,
8679+
DYNAMIC_TYPE_SIGNATURE);
8680+
}
8681+
if (args->sigData == NULL) {
8682+
ERROR_OUT(MEMORY_E, exit_scv);
8683+
}
86818684
}
86828685

86838686
/* Create the data to be signed. */

0 commit comments

Comments
 (0)