fix possible memory leak on error case with ASN1 INTEGER to BN function

This commit is contained in:
Jacob Barthelmeh 2017-01-05 10:00:17 -07:00
parent ea47d76bf7
commit 1a55309207

View File

@ -16570,8 +16570,17 @@ WOLFSSL_BIGNUM *wolfSSL_ASN1_INTEGER_to_BN(const WOLFSSL_ASN1_INTEGER *ai,
return NULL;
}
if (SetIndividualExternal(&bn, &mpi) != SSL_SUCCESS) {
return NULL;
/* SetIndividualExternal mallocs bn in the case that bn is NULL */
if (bn == NULL) {
if (SetIndividualExternal(&bn, &mpi) != SSL_SUCCESS) {
wolfSSL_BN_free(bn);
return NULL;
}
}
else {
if (SetIndividualExternal(&bn, &mpi) != SSL_SUCCESS) {
return NULL;
}
}
return bn;