diff options
author | Alon Bar-Lev <alon.barlev@gmail.com> | 2022-07-26 08:53:48 +0300 |
---|---|---|
committer | Hugo Landau <hlandau@openssl.org> | 2022-07-28 10:05:59 +0100 |
commit | b03756130dadb3732b460a6efd930f1b226acdad (patch) | |
tree | fc48b7d68e46bd8c2fbb3048a83ab3b5d83303c6 /crypto/cms | |
parent | 38b051a1fedc79ebf24a96de2e9a326ad3665baf (diff) | |
download | openssl-new-b03756130dadb3732b460a6efd930f1b226acdad.tar.gz |
REGRESSION: CMS_final: do not ignore CMS_dataFinal result
The CMS_dataFinal result is important as signature may fail, however, it
is ignored while returning success from CMS_final.
The SMIME_crlf_copy result is returned while it is ignored in the rest
of the openssl code.
Prefer the CMS_dataFinal result.
This is regression from openssl-1.
Blame finds c1669f41ei as root cause of regression.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18876)
Diffstat (limited to 'crypto/cms')
-rw-r--r-- | crypto/cms/cms_smime.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/crypto/cms/cms_smime.c b/crypto/cms/cms_smime.c index 2123875f1c..4f5d626fb6 100644 --- a/crypto/cms/cms_smime.c +++ b/crypto/cms/cms_smime.c @@ -882,7 +882,7 @@ int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags) return 0; } - ret = SMIME_crlf_copy(data, cmsbio, flags); + SMIME_crlf_copy(data, cmsbio, flags); (void)BIO_flush(cmsbio); @@ -890,6 +890,9 @@ int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags) ERR_raise(ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR); goto err; } + + ret = 1; + err: do_free_upto(cmsbio, dcont); |