mirror of
https://github.com/QuasarApp/qca.git
synced 2025-05-03 22:59:32 +00:00
ossl: Fix memory leak in CRL handling
ASN1_INTEGER_to_BN returns memory that needs to be freed
This commit is contained in:
parent
a014df24c5
commit
cfc80a9d6e
@ -92,6 +92,13 @@ static BigInteger bn2bi(const BIGNUM *n)
|
|||||||
return BigInteger(buf);
|
return BigInteger(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BigInteger bn2bi_free(BIGNUM *n)
|
||||||
|
{
|
||||||
|
BigInteger bi = bn2bi(n);
|
||||||
|
BN_free(n);
|
||||||
|
return bi;
|
||||||
|
}
|
||||||
|
|
||||||
static BIGNUM *bi2bn(const BigInteger &n)
|
static BIGNUM *bi2bn(const BigInteger &n)
|
||||||
{
|
{
|
||||||
SecureArray buf = n.toArray();
|
SecureArray buf = n.toArray();
|
||||||
@ -4338,7 +4345,7 @@ public:
|
|||||||
|
|
||||||
for (int i = 0; i < sk_X509_REVOKED_num(revokeStack); ++i) {
|
for (int i = 0; i < sk_X509_REVOKED_num(revokeStack); ++i) {
|
||||||
X509_REVOKED *rev = sk_X509_REVOKED_value(revokeStack, i);
|
X509_REVOKED *rev = sk_X509_REVOKED_value(revokeStack, i);
|
||||||
BigInteger serial = bn2bi(ASN1_INTEGER_to_BN(X509_REVOKED_get0_serialNumber(rev), nullptr));
|
BigInteger serial = bn2bi_free(ASN1_INTEGER_to_BN(X509_REVOKED_get0_serialNumber(rev), nullptr));
|
||||||
QDateTime time = ASN1_UTCTIME_QDateTime( X509_REVOKED_get0_revocationDate(rev), nullptr);
|
QDateTime time = ASN1_UTCTIME_QDateTime( X509_REVOKED_get0_revocationDate(rev), nullptr);
|
||||||
QCA::CRLEntry::Reason reason = QCA::CRLEntry::Unspecified;
|
QCA::CRLEntry::Reason reason = QCA::CRLEntry::Unspecified;
|
||||||
int pos = X509_REVOKED_get_ext_by_NID(rev, NID_crl_reason, -1);
|
int pos = X509_REVOKED_get_ext_by_NID(rev, NID_crl_reason, -1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user