diff options
author | Rob Percival <robpercival@google.com> | 2016-08-05 14:17:31 +0100 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2016-08-15 12:56:47 -0400 |
commit | a1bb7708cec057fe07d987398015c01e6090891f (patch) | |
tree | f13433af758a9c80517a8c8bd3ffbb102d96d242 /crypto/ct | |
parent | a0ef6bb6874ea362ef78e0df1435212383df4774 (diff) | |
download | openssl-a1bb7708cec057fe07d987398015c01e6090891f.zip openssl-a1bb7708cec057fe07d987398015c01e6090891f.tar.gz openssl-a1bb7708cec057fe07d987398015c01e6090891f.tar.bz2 |
Improves CTLOG_STORE setters
Changes them to have clearer ownership semantics, as suggested in
https://github.com/openssl/openssl/pull/1372#discussion_r73232196.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1408)
Diffstat (limited to 'crypto/ct')
-rw-r--r-- | crypto/ct/ct_policy.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/crypto/ct/ct_policy.c b/crypto/ct/ct_policy.c index 4c4f9b3..3c8411c 100644 --- a/crypto/ct/ct_policy.c +++ b/crypto/ct/ct_policy.c @@ -30,21 +30,25 @@ CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void) void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx) { + X509_free(ctx->cert); + X509_free(ctx->issuer); OPENSSL_free(ctx); } -void CT_POLICY_EVAL_CTX_set0_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert) +void CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert) { - ctx->cert = cert; + if (X509_up_ref(cert)) + ctx->cert = cert; } -void CT_POLICY_EVAL_CTX_set0_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer) +void CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer) { - ctx->issuer = issuer; + if (X509_up_ref(issuer)) + ctx->issuer = issuer; } -void CT_POLICY_EVAL_CTX_set0_log_store(CT_POLICY_EVAL_CTX *ctx, - CTLOG_STORE *log_store) +void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, + CTLOG_STORE *log_store) { ctx->log_store = log_store; } |