diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/x_algor.c')
-rw-r--r-- | src/lib/libcrypto/asn1/x_algor.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/lib/libcrypto/asn1/x_algor.c b/src/lib/libcrypto/asn1/x_algor.c index 0a80b863de..d91efe9323 100644 --- a/src/lib/libcrypto/asn1/x_algor.c +++ b/src/lib/libcrypto/asn1/x_algor.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x_algor.c,v 1.31 2023/10/11 13:22:11 tb Exp $ */ | 1 | /* $OpenBSD: x_algor.c,v 1.32 2023/11/01 20:14:51 tb Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2000. | 3 | * project 2000. |
4 | */ | 4 | */ |
@@ -149,6 +149,15 @@ X509_ALGOR_dup(X509_ALGOR *x) | |||
149 | return ASN1_item_dup(&X509_ALGOR_it, x); | 149 | return ASN1_item_dup(&X509_ALGOR_it, x); |
150 | } | 150 | } |
151 | 151 | ||
152 | static int | ||
153 | X509_ALGOR_set0_obj(X509_ALGOR *alg, ASN1_OBJECT *aobj) | ||
154 | { | ||
155 | ASN1_OBJECT_free(alg->algorithm); | ||
156 | alg->algorithm = aobj; | ||
157 | |||
158 | return 1; | ||
159 | } | ||
160 | |||
152 | int | 161 | int |
153 | X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval) | 162 | X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval) |
154 | { | 163 | { |
@@ -167,8 +176,8 @@ X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval) | |||
167 | ASN1_TYPE_set(alg->parameter, ptype, pval); | 176 | ASN1_TYPE_set(alg->parameter, ptype, pval); |
168 | } | 177 | } |
169 | 178 | ||
170 | ASN1_OBJECT_free(alg->algorithm); | 179 | if (!X509_ALGOR_set0_obj(alg, aobj)) |
171 | alg->algorithm = aobj; | 180 | return 0; |
172 | 181 | ||
173 | return 1; | 182 | return 1; |
174 | } | 183 | } |