summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2023-11-01 20:14:51 +0000
committertb <>2023-11-01 20:14:51 +0000
commit560a3756685e2ad8beebe2e206506828043a95a4 (patch)
treec9042fc56b971fc1f4e2a4418fde824c0d908260
parentc390cd56e9317524091155e9308978cad9f2e2f5 (diff)
downloadopenbsd-560a3756685e2ad8beebe2e206506828043a95a4.tar.gz
openbsd-560a3756685e2ad8beebe2e206506828043a95a4.tar.bz2
openbsd-560a3756685e2ad8beebe2e206506828043a95a4.zip
Split X509_ALGOR_set0_obj() out of X509_ALGOR_set0()
ok jsing
-rw-r--r--src/lib/libcrypto/asn1/x_algor.c15
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
152static int
153X509_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
152int 161int
153X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval) 162X509_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}