From: Pauli Date: Sun, 13 Jun 2021 23:50:36 +0000 (+1000) Subject: cms: fix coverity 1485981: unchecked return value X-Git-Tag: openssl-3.0.0-beta1~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8dff167dfe5a85932ccb1fc67c8f66af00a616ce;p=thirdparty%2Fopenssl.git cms: fix coverity 1485981: unchecked return value Reviewed-by: Tomas Mraz Reviewed-by: David von Oheimb (Merged from https://github.com/openssl/openssl/pull/15731) --- diff --git a/crypto/cms/cms_ec.c b/crypto/cms/cms_ec.c index 4cf208f5f2c..ca66d9fcf8b 100644 --- a/crypto/cms/cms_ec.c +++ b/crypto/cms/cms_ec.c @@ -20,12 +20,12 @@ static EVP_PKEY *pkey_type2param(int ptype, const void *pval, { EVP_PKEY *pkey = NULL; EVP_PKEY_CTX *pctx = NULL; + OSSL_DECODER_CTX *ctx = NULL; if (ptype == V_ASN1_SEQUENCE) { const ASN1_STRING *pstr = pval; const unsigned char *pm = pstr->data; size_t pmlen = (size_t)pstr->length; - OSSL_DECODER_CTX *ctx = NULL; int selection = OSSL_KEYMGMT_SELECT_ALL_PARAMETERS; ctx = OSSL_DECODER_CTX_new_for_pkey(&pkey, "DER", NULL, "EC", @@ -33,7 +33,10 @@ static EVP_PKEY *pkey_type2param(int ptype, const void *pval, if (ctx == NULL) goto err; - OSSL_DECODER_from_data(ctx, &pm, &pmlen); + if (!OSSL_DECODER_from_data(ctx, &pm, &pmlen)) { + ERR_raise(ERR_LIB_CMS, CMS_R_DECODE_ERROR); + goto err; + } OSSL_DECODER_CTX_free(ctx); } else if (ptype == V_ASN1_OBJECT) { const ASN1_OBJECT *poid = pval; @@ -60,6 +63,7 @@ static EVP_PKEY *pkey_type2param(int ptype, const void *pval, err: EVP_PKEY_free(pkey); EVP_PKEY_CTX_free(pctx); + OSSL_DECODER_CTX_free(ctx); return NULL; }