summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1
diff options
context:
space:
mode:
authorjsg <>2014-04-17 18:38:53 +0000
committerjsg <>2014-04-17 18:38:53 +0000
commit87dc5ba7fdbe9aad46f68ad25457c433066ca01b (patch)
tree430c8107ea049150a784c44e30dc0d1f529b8a97 /src/lib/libcrypto/asn1
parentbdccac7bb03aa13ef9c01cc6ecc1cc7bc42f6f9d (diff)
downloadopenbsd-87dc5ba7fdbe9aad46f68ad25457c433066ca01b.tar.gz
openbsd-87dc5ba7fdbe9aad46f68ad25457c433066ca01b.tar.bz2
openbsd-87dc5ba7fdbe9aad46f68ad25457c433066ca01b.zip
fix some more leaks, mostly suggestions from miod
ok miod@
Diffstat (limited to 'src/lib/libcrypto/asn1')
-rw-r--r--src/lib/libcrypto/asn1/asn_mime.c4
-rw-r--r--src/lib/libcrypto/asn1/bio_asn1.c4
-rw-r--r--src/lib/libcrypto/asn1/tasn_enc.c2
3 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/libcrypto/asn1/asn_mime.c b/src/lib/libcrypto/asn1/asn_mime.c
index 3de73fdb1e..2b600ab411 100644
--- a/src/lib/libcrypto/asn1/asn_mime.c
+++ b/src/lib/libcrypto/asn1/asn_mime.c
@@ -823,8 +823,10 @@ static MIME_HEADER *mime_hdr_new(char *name, char *value)
823 } 823 }
824 } else tmpval = NULL; 824 } else tmpval = NULL;
825 mhdr = (MIME_HEADER *) malloc(sizeof(MIME_HEADER)); 825 mhdr = (MIME_HEADER *) malloc(sizeof(MIME_HEADER));
826 if (!mhdr) 826 if (!mhdr) {
827 OPENSSL_free(tmpname);
827 return NULL; 828 return NULL;
829 }
828 mhdr->name = tmpname; 830 mhdr->name = tmpname;
829 mhdr->value = tmpval; 831 mhdr->value = tmpval;
830 if (!(mhdr->params = sk_MIME_PARAM_new(mime_param_cmp))) { 832 if (!(mhdr->params = sk_MIME_PARAM_new(mime_param_cmp))) {
diff --git a/src/lib/libcrypto/asn1/bio_asn1.c b/src/lib/libcrypto/asn1/bio_asn1.c
index fa98dba728..b59645909c 100644
--- a/src/lib/libcrypto/asn1/bio_asn1.c
+++ b/src/lib/libcrypto/asn1/bio_asn1.c
@@ -153,8 +153,10 @@ static int asn1_bio_new(BIO *b)
153 ctx = malloc(sizeof(BIO_ASN1_BUF_CTX)); 153 ctx = malloc(sizeof(BIO_ASN1_BUF_CTX));
154 if (!ctx) 154 if (!ctx)
155 return 0; 155 return 0;
156 if (!asn1_bio_init(ctx, DEFAULT_ASN1_BUF_SIZE)) 156 if (!asn1_bio_init(ctx, DEFAULT_ASN1_BUF_SIZE)) {
157 free(ctx);
157 return 0; 158 return 0;
159 }
158 b->init = 1; 160 b->init = 1;
159 b->ptr = (char *)ctx; 161 b->ptr = (char *)ctx;
160 b->flags = 0; 162 b->flags = 0;
diff --git a/src/lib/libcrypto/asn1/tasn_enc.c b/src/lib/libcrypto/asn1/tasn_enc.c
index 9ab0473d73..54e3f7a94a 100644
--- a/src/lib/libcrypto/asn1/tasn_enc.c
+++ b/src/lib/libcrypto/asn1/tasn_enc.c
@@ -455,6 +455,8 @@ static int asn1_set_seq_out(STACK_OF(ASN1_VALUE) *sk, unsigned char **out,
455 * sizeof(*derlst)); 455 * sizeof(*derlst));
456 tmpdat = malloc(skcontlen); 456 tmpdat = malloc(skcontlen);
457 if (!derlst || !tmpdat) 457 if (!derlst || !tmpdat)
458 free(derlst);
459 free(tmpdat);
458 return 0; 460 return 0;
459 } 461 }
460 } 462 }