From 9db8b988bcc89d5805db43a46d37550a2b459f1d Mon Sep 17 00:00:00 2001 From: Karel Slany Date: Wed, 22 Oct 2014 11:52:40 +0200 Subject: [PATCH] CMS data are extracted outside the switch block in OpenSSL implementation. --- src/crypto_openssl.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/crypto_openssl.c b/src/crypto_openssl.c index a92dad1..b1dad43 100644 --- a/src/crypto_openssl.c +++ b/src/crypto_openssl.c @@ -170,7 +170,6 @@ _hidden isds_error _isds_extract_cms_data(struct isds_ctx *context, cms_ci = d2i_CMS_bio(bio, NULL); if (NULL == cms_ci) { - fprintf(stderr, "Cannot parse CMS.\n"); isds_log_message(context, _("Cannot parse CMS.")); while (0 != (err = ERR_get_error())) { locale_str = _isds_utf82locale(ERR_error_string(err, NULL)); @@ -199,12 +198,6 @@ _hidden isds_error _isds_extract_cms_data(struct isds_ctx *context, goto fail; break; case NID_pkcs7_signed: - pos = CMS_get0_content(cms_ci); - if ((NULL == pos) || (NULL == *pos)) { - assert(0); - retval = IE_ERROR; - goto fail; - } break; default: assert(0); @@ -213,6 +206,13 @@ _hidden isds_error _isds_extract_cms_data(struct isds_ctx *context, break; } + pos = CMS_get0_content(cms_ci); + if ((NULL == pos) || (NULL == *pos)) { + assert(0); + retval = IE_ERROR; + goto fail; + } + *data = malloc((*pos)->length); if (NULL == *data) { retval = IE_NOMEM; -- 2.11.4.GIT