ERR_raise(ERR_LIB_X509, ERR_R_CRYPTO_LIB);
goto err;
}
- ret->references = 1;
+
+ if (!CRYPTO_NEW_REF(&ret->references, 1))
+ goto err;
return ret;
err:
X509_VERIFY_PARAM_free(ret->param);
sk_X509_OBJECT_free(ret->objs);
sk_X509_LOOKUP_free(ret->get_cert_methods);
+ CRYPTO_THREAD_lock_free(ret->lock);
OPENSSL_free(ret);
return NULL;
}
if (xs == NULL)
return;
- CRYPTO_DOWN_REF(&xs->references, &i, xs->lock);
+ CRYPTO_DOWN_REF(&xs->references, &i);
REF_PRINT_COUNT("X509_STORE", xs);
if (i > 0)
return;
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, xs, &xs->ex_data);
X509_VERIFY_PARAM_free(xs->param);
CRYPTO_THREAD_lock_free(xs->lock);
+ CRYPTO_FREE_REF(&xs->references);
OPENSSL_free(xs);
}
{
int i;
- if (CRYPTO_UP_REF(&xs->references, &i, xs->lock) <= 0)
+ if (CRYPTO_UP_REF(&xs->references, &i) <= 0)
return 0;
REF_PRINT_COUNT("X509_STORE", xs);
{
int i;
- if (CRYPTO_UP_REF(&x->references, &i, x->lock) <= 0)
+ if (CRYPTO_UP_REF(&x->references, &i) <= 0)
return 0;
REF_PRINT_COUNT("X509", x);
{
int i;
- if (CRYPTO_UP_REF(&crl->references, &i, crl->lock) <= 0)
+ if (CRYPTO_UP_REF(&crl->references, &i) <= 0)
return 0;
REF_PRINT_COUNT("X509_CRL", crl);