summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509
diff options
context:
space:
mode:
authorbeck <>2014-04-17 13:37:50 +0000
committerbeck <>2014-04-17 13:37:50 +0000
commitbddb7c686e3d1aeb156722adc64b6c35ae720f87 (patch)
tree7595a93a27385c367802aa17ecf20f96551cf14d /src/lib/libcrypto/x509
parentecec66222d758996a4ff2671ca5026d9ede5ef76 (diff)
downloadopenbsd-bddb7c686e3d1aeb156722adc64b6c35ae720f87.tar.gz
openbsd-bddb7c686e3d1aeb156722adc64b6c35ae720f87.tar.bz2
openbsd-bddb7c686e3d1aeb156722adc64b6c35ae720f87.zip
Change library to use intrinsic memory allocation functions instead of
OPENSSL_foo wrappers. This changes: OPENSSL_malloc->malloc OPENSSL_free->free OPENSSL_relloc->realloc OPENSSL_freeFunc->free
Diffstat (limited to 'src/lib/libcrypto/x509')
-rw-r--r--src/lib/libcrypto/x509/by_dir.c18
-rw-r--r--src/lib/libcrypto/x509/x509_cmp.c2
-rw-r--r--src/lib/libcrypto/x509/x509_lu.c22
-rw-r--r--src/lib/libcrypto/x509/x509_obj.c4
-rw-r--r--src/lib/libcrypto/x509/x509_req.c2
-rw-r--r--src/lib/libcrypto/x509/x509_trs.c10
-rw-r--r--src/lib/libcrypto/x509/x509_vfy.c6
-rw-r--r--src/lib/libcrypto/x509/x509_vpm.c6
-rw-r--r--src/lib/libcrypto/x509/x509spki.c12
9 files changed, 41 insertions, 41 deletions
diff --git a/src/lib/libcrypto/x509/by_dir.c b/src/lib/libcrypto/x509/by_dir.c
index ccf2f6e0bf..3b72fd302f 100644
--- a/src/lib/libcrypto/x509/by_dir.c
+++ b/src/lib/libcrypto/x509/by_dir.c
@@ -153,10 +153,10 @@ new_dir(X509_LOOKUP *lu)
153{ 153{
154 BY_DIR *a; 154 BY_DIR *a;
155 155
156 if ((a = (BY_DIR *)OPENSSL_malloc(sizeof(BY_DIR))) == NULL) 156 if ((a = (BY_DIR *)malloc(sizeof(BY_DIR))) == NULL)
157 return (0); 157 return (0);
158 if ((a->buffer = BUF_MEM_new()) == NULL) { 158 if ((a->buffer = BUF_MEM_new()) == NULL) {
159 OPENSSL_free(a); 159 free(a);
160 return (0); 160 return (0);
161 } 161 }
162 a->dirs = NULL; 162 a->dirs = NULL;
@@ -167,7 +167,7 @@ new_dir(X509_LOOKUP *lu)
167static void 167static void
168by_dir_hash_free(BY_DIR_HASH *hash) 168by_dir_hash_free(BY_DIR_HASH *hash)
169{ 169{
170 OPENSSL_free(hash); 170 free(hash);
171} 171}
172 172
173static int 173static int
@@ -185,10 +185,10 @@ static void
185by_dir_entry_free(BY_DIR_ENTRY *ent) 185by_dir_entry_free(BY_DIR_ENTRY *ent)
186{ 186{
187 if (ent->dir) 187 if (ent->dir)
188 OPENSSL_free(ent->dir); 188 free(ent->dir);
189 if (ent->hashes) 189 if (ent->hashes)
190 sk_BY_DIR_HASH_pop_free(ent->hashes, by_dir_hash_free); 190 sk_BY_DIR_HASH_pop_free(ent->hashes, by_dir_hash_free);
191 OPENSSL_free(ent); 191 free(ent);
192} 192}
193 193
194static void 194static void
@@ -201,7 +201,7 @@ free_dir(X509_LOOKUP *lu)
201 sk_BY_DIR_ENTRY_pop_free(a->dirs, by_dir_entry_free); 201 sk_BY_DIR_ENTRY_pop_free(a->dirs, by_dir_entry_free);
202 if (a->buffer != NULL) 202 if (a->buffer != NULL)
203 BUF_MEM_free(a->buffer); 203 BUF_MEM_free(a->buffer);
204 OPENSSL_free(a); 204 free(a);
205} 205}
206 206
207static int 207static int
@@ -241,7 +241,7 @@ add_cert_dir(BY_DIR *ctx, const char *dir, int type)
241 return 0; 241 return 0;
242 } 242 }
243 } 243 }
244 ent = OPENSSL_malloc(sizeof(BY_DIR_ENTRY)); 244 ent = malloc(sizeof(BY_DIR_ENTRY));
245 if (!ent) 245 if (!ent)
246 return 0; 246 return 0;
247 ent->dir_type = type; 247 ent->dir_type = type;
@@ -411,12 +411,12 @@ get_cert_by_subject(X509_LOOKUP *xl, int type, X509_NAME *name,
411 ent->hashes, idx); 411 ent->hashes, idx);
412 } 412 }
413 if (!hent) { 413 if (!hent) {
414 hent = OPENSSL_malloc(sizeof(BY_DIR_HASH)); 414 hent = malloc(sizeof(BY_DIR_HASH));
415 hent->hash = h; 415 hent->hash = h;
416 hent->suffix = k; 416 hent->suffix = k;
417 if (!sk_BY_DIR_HASH_push(ent->hashes, hent)) { 417 if (!sk_BY_DIR_HASH_push(ent->hashes, hent)) {
418 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE); 418 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
419 OPENSSL_free(hent); 419 free(hent);
420 ok = 0; 420 ok = 0;
421 goto finish; 421 goto finish;
422 } 422 }
diff --git a/src/lib/libcrypto/x509/x509_cmp.c b/src/lib/libcrypto/x509/x509_cmp.c
index 352aa37434..2f1b8953e5 100644
--- a/src/lib/libcrypto/x509/x509_cmp.c
+++ b/src/lib/libcrypto/x509/x509_cmp.c
@@ -90,7 +90,7 @@ unsigned long X509_issuer_and_serial_hash(X509 *a)
90 goto err; 90 goto err;
91 if (!EVP_DigestUpdate(&ctx,(unsigned char *)f,strlen(f))) 91 if (!EVP_DigestUpdate(&ctx,(unsigned char *)f,strlen(f)))
92 goto err; 92 goto err;
93 OPENSSL_free(f); 93 free(f);
94 if(!EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data, 94 if(!EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data,
95 (unsigned long)a->cert_info->serialNumber->length)) 95 (unsigned long)a->cert_info->serialNumber->length))
96 goto err; 96 goto err;
diff --git a/src/lib/libcrypto/x509/x509_lu.c b/src/lib/libcrypto/x509/x509_lu.c
index 38525a8cdd..644ea83bac 100644
--- a/src/lib/libcrypto/x509/x509_lu.c
+++ b/src/lib/libcrypto/x509/x509_lu.c
@@ -66,7 +66,7 @@ X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method)
66 { 66 {
67 X509_LOOKUP *ret; 67 X509_LOOKUP *ret;
68 68
69 ret=(X509_LOOKUP *)OPENSSL_malloc(sizeof(X509_LOOKUP)); 69 ret=(X509_LOOKUP *)malloc(sizeof(X509_LOOKUP));
70 if (ret == NULL) return NULL; 70 if (ret == NULL) return NULL;
71 71
72 ret->init=0; 72 ret->init=0;
@@ -76,7 +76,7 @@ X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method)
76 ret->store_ctx=NULL; 76 ret->store_ctx=NULL;
77 if ((method->new_item != NULL) && !method->new_item(ret)) 77 if ((method->new_item != NULL) && !method->new_item(ret))
78 { 78 {
79 OPENSSL_free(ret); 79 free(ret);
80 return NULL; 80 return NULL;
81 } 81 }
82 return ret; 82 return ret;
@@ -88,7 +88,7 @@ void X509_LOOKUP_free(X509_LOOKUP *ctx)
88 if ( (ctx->method != NULL) && 88 if ( (ctx->method != NULL) &&
89 (ctx->method->free != NULL)) 89 (ctx->method->free != NULL))
90 (*ctx->method->free)(ctx); 90 (*ctx->method->free)(ctx);
91 OPENSSL_free(ctx); 91 free(ctx);
92 } 92 }
93 93
94int X509_LOOKUP_init(X509_LOOKUP *ctx) 94int X509_LOOKUP_init(X509_LOOKUP *ctx)
@@ -179,7 +179,7 @@ X509_STORE *X509_STORE_new(void)
179 { 179 {
180 X509_STORE *ret; 180 X509_STORE *ret;
181 181
182 if ((ret=(X509_STORE *)OPENSSL_malloc(sizeof(X509_STORE))) == NULL) 182 if ((ret=(X509_STORE *)malloc(sizeof(X509_STORE))) == NULL)
183 return NULL; 183 return NULL;
184 ret->objs = sk_X509_OBJECT_new(x509_object_cmp); 184 ret->objs = sk_X509_OBJECT_new(x509_object_cmp);
185 ret->cache=1; 185 ret->cache=1;
@@ -203,7 +203,7 @@ X509_STORE *X509_STORE_new(void)
203 if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE, ret, &ret->ex_data)) 203 if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE, ret, &ret->ex_data))
204 { 204 {
205 sk_X509_OBJECT_free(ret->objs); 205 sk_X509_OBJECT_free(ret->objs);
206 OPENSSL_free(ret); 206 free(ret);
207 return NULL; 207 return NULL;
208 } 208 }
209 209
@@ -226,7 +226,7 @@ static void cleanup(X509_OBJECT *a)
226 /* abort(); */ 226 /* abort(); */
227 } 227 }
228 228
229 OPENSSL_free(a); 229 free(a);
230 } 230 }
231 231
232void X509_STORE_free(X509_STORE *vfy) 232void X509_STORE_free(X509_STORE *vfy)
@@ -251,7 +251,7 @@ void X509_STORE_free(X509_STORE *vfy)
251 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data); 251 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data);
252 if (vfy->param) 252 if (vfy->param)
253 X509_VERIFY_PARAM_free(vfy->param); 253 X509_VERIFY_PARAM_free(vfy->param);
254 OPENSSL_free(vfy); 254 free(vfy);
255 } 255 }
256 256
257X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m) 257X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
@@ -337,7 +337,7 @@ int X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
337 int ret=1; 337 int ret=1;
338 338
339 if (x == NULL) return 0; 339 if (x == NULL) return 0;
340 obj=(X509_OBJECT *)OPENSSL_malloc(sizeof(X509_OBJECT)); 340 obj=(X509_OBJECT *)malloc(sizeof(X509_OBJECT));
341 if (obj == NULL) 341 if (obj == NULL)
342 { 342 {
343 X509err(X509_F_X509_STORE_ADD_CERT,ERR_R_MALLOC_FAILURE); 343 X509err(X509_F_X509_STORE_ADD_CERT,ERR_R_MALLOC_FAILURE);
@@ -353,7 +353,7 @@ int X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
353 if (X509_OBJECT_retrieve_match(ctx->objs, obj)) 353 if (X509_OBJECT_retrieve_match(ctx->objs, obj))
354 { 354 {
355 X509_OBJECT_free_contents(obj); 355 X509_OBJECT_free_contents(obj);
356 OPENSSL_free(obj); 356 free(obj);
357 X509err(X509_F_X509_STORE_ADD_CERT,X509_R_CERT_ALREADY_IN_HASH_TABLE); 357 X509err(X509_F_X509_STORE_ADD_CERT,X509_R_CERT_ALREADY_IN_HASH_TABLE);
358 ret=0; 358 ret=0;
359 } 359 }
@@ -370,7 +370,7 @@ int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
370 int ret=1; 370 int ret=1;
371 371
372 if (x == NULL) return 0; 372 if (x == NULL) return 0;
373 obj=(X509_OBJECT *)OPENSSL_malloc(sizeof(X509_OBJECT)); 373 obj=(X509_OBJECT *)malloc(sizeof(X509_OBJECT));
374 if (obj == NULL) 374 if (obj == NULL)
375 { 375 {
376 X509err(X509_F_X509_STORE_ADD_CRL,ERR_R_MALLOC_FAILURE); 376 X509err(X509_F_X509_STORE_ADD_CRL,ERR_R_MALLOC_FAILURE);
@@ -386,7 +386,7 @@ int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
386 if (X509_OBJECT_retrieve_match(ctx->objs, obj)) 386 if (X509_OBJECT_retrieve_match(ctx->objs, obj))
387 { 387 {
388 X509_OBJECT_free_contents(obj); 388 X509_OBJECT_free_contents(obj);
389 OPENSSL_free(obj); 389 free(obj);
390 X509err(X509_F_X509_STORE_ADD_CRL,X509_R_CERT_ALREADY_IN_HASH_TABLE); 390 X509err(X509_F_X509_STORE_ADD_CRL,X509_R_CERT_ALREADY_IN_HASH_TABLE);
391 ret=0; 391 ret=0;
392 } 392 }
diff --git a/src/lib/libcrypto/x509/x509_obj.c b/src/lib/libcrypto/x509/x509_obj.c
index 1d3cf547d7..5f38315f22 100644
--- a/src/lib/libcrypto/x509/x509_obj.c
+++ b/src/lib/libcrypto/x509/x509_obj.c
@@ -88,7 +88,7 @@ int i;
88 if(b) 88 if(b)
89 { 89 {
90 buf=b->data; 90 buf=b->data;
91 OPENSSL_free(b); 91 free(b);
92 } 92 }
93 strlcpy(buf,"NO X509_NAME",len); 93 strlcpy(buf,"NO X509_NAME",len);
94 return buf; 94 return buf;
@@ -170,7 +170,7 @@ int i;
170 if (b != NULL) 170 if (b != NULL)
171 { 171 {
172 p=b->data; 172 p=b->data;
173 OPENSSL_free(b); 173 free(b);
174 } 174 }
175 else 175 else
176 p=buf; 176 p=buf;
diff --git a/src/lib/libcrypto/x509/x509_req.c b/src/lib/libcrypto/x509/x509_req.c
index 48183dc00c..1c5cee8030 100644
--- a/src/lib/libcrypto/x509/x509_req.c
+++ b/src/lib/libcrypto/x509/x509_req.c
@@ -84,7 +84,7 @@ X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
84 ri=ret->req_info; 84 ri=ret->req_info;
85 85
86 ri->version->length=1; 86 ri->version->length=1;
87 ri->version->data=(unsigned char *)OPENSSL_malloc(1); 87 ri->version->data=(unsigned char *)malloc(1);
88 if (ri->version->data == NULL) goto err; 88 if (ri->version->data == NULL) goto err;
89 ri->version->data[0]=0; /* version == 0 */ 89 ri->version->data[0]=0; /* version == 0 */
90 90
diff --git a/src/lib/libcrypto/x509/x509_trs.c b/src/lib/libcrypto/x509/x509_trs.c
index a6cb9c8b1b..7bb5094e64 100644
--- a/src/lib/libcrypto/x509/x509_trs.c
+++ b/src/lib/libcrypto/x509/x509_trs.c
@@ -169,15 +169,15 @@ int X509_TRUST_add(int id, int flags, int (*ck)(X509_TRUST *, X509 *, int),
169 idx = X509_TRUST_get_by_id(id); 169 idx = X509_TRUST_get_by_id(id);
170 /* Need a new entry */ 170 /* Need a new entry */
171 if(idx == -1) { 171 if(idx == -1) {
172 if(!(trtmp = OPENSSL_malloc(sizeof(X509_TRUST)))) { 172 if(!(trtmp = malloc(sizeof(X509_TRUST)))) {
173 X509err(X509_F_X509_TRUST_ADD,ERR_R_MALLOC_FAILURE); 173 X509err(X509_F_X509_TRUST_ADD,ERR_R_MALLOC_FAILURE);
174 return 0; 174 return 0;
175 } 175 }
176 trtmp->flags = X509_TRUST_DYNAMIC; 176 trtmp->flags = X509_TRUST_DYNAMIC;
177 } else trtmp = X509_TRUST_get0(idx); 177 } else trtmp = X509_TRUST_get0(idx);
178 178
179 /* OPENSSL_free existing name if dynamic */ 179 /* free existing name if dynamic */
180 if(trtmp->flags & X509_TRUST_DYNAMIC_NAME) OPENSSL_free(trtmp->name); 180 if(trtmp->flags & X509_TRUST_DYNAMIC_NAME) free(trtmp->name);
181 /* dup supplied name */ 181 /* dup supplied name */
182 if(!(trtmp->name = BUF_strdup(name))) { 182 if(!(trtmp->name = BUF_strdup(name))) {
183 X509err(X509_F_X509_TRUST_ADD,ERR_R_MALLOC_FAILURE); 183 X509err(X509_F_X509_TRUST_ADD,ERR_R_MALLOC_FAILURE);
@@ -213,8 +213,8 @@ static void trtable_free(X509_TRUST *p)
213 if (p->flags & X509_TRUST_DYNAMIC) 213 if (p->flags & X509_TRUST_DYNAMIC)
214 { 214 {
215 if (p->flags & X509_TRUST_DYNAMIC_NAME) 215 if (p->flags & X509_TRUST_DYNAMIC_NAME)
216 OPENSSL_free(p->name); 216 free(p->name);
217 OPENSSL_free(p); 217 free(p);
218 } 218 }
219 } 219 }
220 220
diff --git a/src/lib/libcrypto/x509/x509_vfy.c b/src/lib/libcrypto/x509/x509_vfy.c
index a82c2872e0..077bfd8f2d 100644
--- a/src/lib/libcrypto/x509/x509_vfy.c
+++ b/src/lib/libcrypto/x509/x509_vfy.c
@@ -1986,7 +1986,7 @@ int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,
1986X509_STORE_CTX *X509_STORE_CTX_new(void) 1986X509_STORE_CTX *X509_STORE_CTX_new(void)
1987{ 1987{
1988 X509_STORE_CTX *ctx; 1988 X509_STORE_CTX *ctx;
1989 ctx = (X509_STORE_CTX *)OPENSSL_malloc(sizeof(X509_STORE_CTX)); 1989 ctx = (X509_STORE_CTX *)malloc(sizeof(X509_STORE_CTX));
1990 if (!ctx) 1990 if (!ctx)
1991 { 1991 {
1992 X509err(X509_F_X509_STORE_CTX_NEW,ERR_R_MALLOC_FAILURE); 1992 X509err(X509_F_X509_STORE_CTX_NEW,ERR_R_MALLOC_FAILURE);
@@ -1999,7 +1999,7 @@ X509_STORE_CTX *X509_STORE_CTX_new(void)
1999void X509_STORE_CTX_free(X509_STORE_CTX *ctx) 1999void X509_STORE_CTX_free(X509_STORE_CTX *ctx)
2000{ 2000{
2001 X509_STORE_CTX_cleanup(ctx); 2001 X509_STORE_CTX_cleanup(ctx);
2002 OPENSSL_free(ctx); 2002 free(ctx);
2003} 2003}
2004 2004
2005int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, 2005int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
@@ -2122,7 +2122,7 @@ int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
2122 if(!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE_CTX, ctx, 2122 if(!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE_CTX, ctx,
2123 &(ctx->ex_data))) 2123 &(ctx->ex_data)))
2124 { 2124 {
2125 OPENSSL_free(ctx); 2125 free(ctx);
2126 X509err(X509_F_X509_STORE_CTX_INIT,ERR_R_MALLOC_FAILURE); 2126 X509err(X509_F_X509_STORE_CTX_INIT,ERR_R_MALLOC_FAILURE);
2127 return 0; 2127 return 0;
2128 } 2128 }
diff --git a/src/lib/libcrypto/x509/x509_vpm.c b/src/lib/libcrypto/x509/x509_vpm.c
index dfd89d89fa..5e3eba4029 100644
--- a/src/lib/libcrypto/x509/x509_vpm.c
+++ b/src/lib/libcrypto/x509/x509_vpm.c
@@ -88,7 +88,7 @@ static void x509_verify_param_zero(X509_VERIFY_PARAM *param)
88X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void) 88X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void)
89 { 89 {
90 X509_VERIFY_PARAM *param; 90 X509_VERIFY_PARAM *param;
91 param = OPENSSL_malloc(sizeof(X509_VERIFY_PARAM)); 91 param = malloc(sizeof(X509_VERIFY_PARAM));
92 memset(param, 0, sizeof(X509_VERIFY_PARAM)); 92 memset(param, 0, sizeof(X509_VERIFY_PARAM));
93 x509_verify_param_zero(param); 93 x509_verify_param_zero(param);
94 return param; 94 return param;
@@ -97,7 +97,7 @@ X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void)
97void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param) 97void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param)
98 { 98 {
99 x509_verify_param_zero(param); 99 x509_verify_param_zero(param);
100 OPENSSL_free(param); 100 free(param);
101 } 101 }
102 102
103/* This function determines how parameters are "inherited" from one structure 103/* This function determines how parameters are "inherited" from one structure
@@ -210,7 +210,7 @@ int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
210int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name) 210int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name)
211 { 211 {
212 if (param->name) 212 if (param->name)
213 OPENSSL_free(param->name); 213 free(param->name);
214 param->name = BUF_strdup(name); 214 param->name = BUF_strdup(name);
215 if (param->name) 215 if (param->name)
216 return 1; 216 return 1;
diff --git a/src/lib/libcrypto/x509/x509spki.c b/src/lib/libcrypto/x509/x509spki.c
index 02a203d72c..28bc12e1a2 100644
--- a/src/lib/libcrypto/x509/x509spki.c
+++ b/src/lib/libcrypto/x509/x509spki.c
@@ -82,7 +82,7 @@ NETSCAPE_SPKI * NETSCAPE_SPKI_b64_decode(const char *str, int len)
82 int spki_len; 82 int spki_len;
83 NETSCAPE_SPKI *spki; 83 NETSCAPE_SPKI *spki;
84 if(len <= 0) len = strlen(str); 84 if(len <= 0) len = strlen(str);
85 if (!(spki_der = OPENSSL_malloc(len + 1))) { 85 if (!(spki_der = malloc(len + 1))) {
86 X509err(X509_F_NETSCAPE_SPKI_B64_DECODE, ERR_R_MALLOC_FAILURE); 86 X509err(X509_F_NETSCAPE_SPKI_B64_DECODE, ERR_R_MALLOC_FAILURE);
87 return NULL; 87 return NULL;
88 } 88 }
@@ -90,12 +90,12 @@ NETSCAPE_SPKI * NETSCAPE_SPKI_b64_decode(const char *str, int len)
90 if(spki_len < 0) { 90 if(spki_len < 0) {
91 X509err(X509_F_NETSCAPE_SPKI_B64_DECODE, 91 X509err(X509_F_NETSCAPE_SPKI_B64_DECODE,
92 X509_R_BASE64_DECODE_ERROR); 92 X509_R_BASE64_DECODE_ERROR);
93 OPENSSL_free(spki_der); 93 free(spki_der);
94 return NULL; 94 return NULL;
95 } 95 }
96 p = spki_der; 96 p = spki_der;
97 spki = d2i_NETSCAPE_SPKI(NULL, &p, spki_len); 97 spki = d2i_NETSCAPE_SPKI(NULL, &p, spki_len);
98 OPENSSL_free(spki_der); 98 free(spki_der);
99 return spki; 99 return spki;
100} 100}
101 101
@@ -107,8 +107,8 @@ char * NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki)
107 char *b64_str; 107 char *b64_str;
108 int der_len; 108 int der_len;
109 der_len = i2d_NETSCAPE_SPKI(spki, NULL); 109 der_len = i2d_NETSCAPE_SPKI(spki, NULL);
110 der_spki = OPENSSL_malloc(der_len); 110 der_spki = malloc(der_len);
111 b64_str = OPENSSL_malloc(der_len * 2); 111 b64_str = malloc(der_len * 2);
112 if(!der_spki || !b64_str) { 112 if(!der_spki || !b64_str) {
113 X509err(X509_F_NETSCAPE_SPKI_B64_ENCODE, ERR_R_MALLOC_FAILURE); 113 X509err(X509_F_NETSCAPE_SPKI_B64_ENCODE, ERR_R_MALLOC_FAILURE);
114 return NULL; 114 return NULL;
@@ -116,6 +116,6 @@ char * NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki)
116 p = der_spki; 116 p = der_spki;
117 i2d_NETSCAPE_SPKI(spki, &p); 117 i2d_NETSCAPE_SPKI(spki, &p);
118 EVP_EncodeBlock((unsigned char *)b64_str, der_spki, der_len); 118 EVP_EncodeBlock((unsigned char *)b64_str, der_spki, der_len);
119 OPENSSL_free(der_spki); 119 free(der_spki);
120 return b64_str; 120 return b64_str;
121} 121}