From 6e3958b47ecb37421870494c21958e68f064d872 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Mon, 27 Mar 2006 04:26:05 +0000 Subject: [PATCH] (_hx509_collector_alloc): handle errors git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16826 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/hx509/collector.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/hx509/collector.c b/lib/hx509/collector.c index 6359a2ba7..3444a4442 100644 --- a/lib/hx509/collector.c +++ b/lib/hx509/collector.c @@ -55,16 +55,28 @@ struct hx509_collector * _hx509_collector_alloc(hx509_context context, hx509_lock lock) { struct hx509_collector *c; + int ret; c = calloc(1, sizeof(*c)); if (c == NULL) return NULL; c->lock = lock; - hx509_certs_init(context, "MEMORY:dummy", 0, NULL, &c->unenvelop_certs); + ret = hx509_certs_init(context, "MEMORY:collector-unenvelop-cert", + 0,NULL, &c->unenvelop_certs); + if (ret) { + free(c); + return NULL; + } c->val.data = NULL; c->val.len = 0; - hx509_certs_init(context, "MEMORY:collector-tmp-store", 0, NULL, &c->certs); + ret = hx509_certs_init(context, "MEMORY:collector-tmp-store", + 0, NULL, &c->certs); + if (ret) { + hx509_certs_free(&c->unenvelop_certs); + free(c); + return NULL; + } return c; }