summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/x_x509.c
diff options
context:
space:
mode:
authordjm <>2008-09-06 12:17:54 +0000
committerdjm <>2008-09-06 12:17:54 +0000
commit38ce604e3cc97706b876b0525ddff0121115456d (patch)
tree7ccc28afe1789ea3dbedf72365f955d5b8e105b5 /src/lib/libcrypto/asn1/x_x509.c
parent12867252827c8efaa8ddd1fa3b3d6e321e2bcdef (diff)
downloadopenbsd-38ce604e3cc97706b876b0525ddff0121115456d.tar.gz
openbsd-38ce604e3cc97706b876b0525ddff0121115456d.tar.bz2
openbsd-38ce604e3cc97706b876b0525ddff0121115456d.zip
resolve conflicts
Diffstat (limited to 'src/lib/libcrypto/asn1/x_x509.c')
-rw-r--r--src/lib/libcrypto/asn1/x_x509.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/lib/libcrypto/asn1/x_x509.c b/src/lib/libcrypto/asn1/x_x509.c
index b50167ce43..e118696625 100644
--- a/src/lib/libcrypto/asn1/x_x509.c
+++ b/src/lib/libcrypto/asn1/x_x509.c
@@ -79,6 +79,8 @@ ASN1_SEQUENCE(X509_CINF) = {
79IMPLEMENT_ASN1_FUNCTIONS(X509_CINF) 79IMPLEMENT_ASN1_FUNCTIONS(X509_CINF)
80/* X509 top level structure needs a bit of customisation */ 80/* X509 top level structure needs a bit of customisation */
81 81
82extern void policy_cache_free(X509_POLICY_CACHE *cache);
83
82static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it) 84static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
83{ 85{
84 X509 *ret = (X509 *)*pval; 86 X509 *ret = (X509 *)*pval;
@@ -92,6 +94,10 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
92 ret->ex_pathlen = -1; 94 ret->ex_pathlen = -1;
93 ret->skid = NULL; 95 ret->skid = NULL;
94 ret->akid = NULL; 96 ret->akid = NULL;
97#ifndef OPENSSL_NO_RFC3779
98 ret->rfc3779_addr = NULL;
99 ret->rfc3779_asid = NULL;
100#endif
95 ret->aux = NULL; 101 ret->aux = NULL;
96 CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509, ret, &ret->ex_data); 102 CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509, ret, &ret->ex_data);
97 break; 103 break;
@@ -106,6 +112,11 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
106 X509_CERT_AUX_free(ret->aux); 112 X509_CERT_AUX_free(ret->aux);
107 ASN1_OCTET_STRING_free(ret->skid); 113 ASN1_OCTET_STRING_free(ret->skid);
108 AUTHORITY_KEYID_free(ret->akid); 114 AUTHORITY_KEYID_free(ret->akid);
115 policy_cache_free(ret->policy_cache);
116#ifndef OPENSSL_NO_RFC3779
117 sk_IPAddressFamily_pop_free(ret->rfc3779_addr, IPAddressFamily_free);
118 ASIdentifiers_free(ret->rfc3779_asid);
119#endif
109 120
110 if (ret->name != NULL) OPENSSL_free(ret->name); 121 if (ret->name != NULL) OPENSSL_free(ret->name);
111 break; 122 break;
@@ -125,11 +136,13 @@ ASN1_SEQUENCE_ref(X509, x509_cb, CRYPTO_LOCK_X509) = {
125IMPLEMENT_ASN1_FUNCTIONS(X509) 136IMPLEMENT_ASN1_FUNCTIONS(X509)
126IMPLEMENT_ASN1_DUP_FUNCTION(X509) 137IMPLEMENT_ASN1_DUP_FUNCTION(X509)
127 138
128static ASN1_METHOD meth={ 139static ASN1_METHOD meth=
129 (int (*)()) i2d_X509, 140 {
130 (char *(*)())d2i_X509, 141 (I2D_OF(void)) i2d_X509,
131 (char *(*)())X509_new, 142 (D2I_OF(void)) d2i_X509,
132 (void (*)()) X509_free}; 143 (void *(*)(void))X509_new,
144 (void (*)(void *)) X509_free
145 };
133 146
134ASN1_METHOD *X509_asn1_meth(void) 147ASN1_METHOD *X509_asn1_meth(void)
135 { 148 {
@@ -161,9 +174,9 @@ void *X509_get_ex_data(X509 *r, int idx)
161 * 174 *
162 */ 175 */
163 176
164X509 *d2i_X509_AUX(X509 **a, unsigned char **pp, long length) 177X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length)
165{ 178{
166 unsigned char *q; 179 const unsigned char *q;
167 X509 *ret; 180 X509 *ret;
168 /* Save start position */ 181 /* Save start position */
169 q = *pp; 182 q = *pp;