diff options
author | jsg <> | 2014-04-17 18:38:53 +0000 |
---|---|---|
committer | jsg <> | 2014-04-17 18:38:53 +0000 |
commit | 87dc5ba7fdbe9aad46f68ad25457c433066ca01b (patch) | |
tree | 430c8107ea049150a784c44e30dc0d1f529b8a97 /src/lib/libcrypto/asn1 | |
parent | bdccac7bb03aa13ef9c01cc6ecc1cc7bc42f6f9d (diff) | |
download | openbsd-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.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/asn1/bio_asn1.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/asn1/tasn_enc.c | 2 |
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 | } |