]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Verification zero-length content in S/MIME format
authorDmitry Belyavskiy <beldmit@gmail.com>
Fri, 9 Oct 2020 17:04:05 +0000 (20:04 +0300)
committerDmitry Belyavskiy <beldmit@gmail.com>
Wed, 11 Nov 2020 10:50:42 +0000 (13:50 +0300)
Fixes #13082

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/13106)

crypto/cms/cms_smime.c
crypto/pkcs7/pk7_smime.c

index 652e97b2e877fd3cd132473ca042750c47b8cccf..2c475ea68cddf55f81ad223abccaaa2dac481f53 100644 (file)
@@ -341,7 +341,7 @@ int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
         char *ptr;
         long len;
         len = BIO_get_mem_data(dcont, &ptr);
-        tmpin = BIO_new_mem_buf(ptr, len);
+        tmpin = (len == 0) ? dcont : BIO_new_mem_buf(ptr, len);
         if (tmpin == NULL) {
             CMSerr(CMS_F_CMS_VERIFY, ERR_R_MALLOC_FAILURE);
             goto err2;
index 44187230ef043b5bcd33d6c21240fa1088ac827a..4ce44d8d939a35ada42640c42f2de5caa3080794 100644 (file)
@@ -301,7 +301,7 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
         char *ptr;
         long len;
         len = BIO_get_mem_data(indata, &ptr);
-        tmpin = BIO_new_mem_buf(ptr, len);
+        tmpin = (len == 0) ? indata : BIO_new_mem_buf(ptr, len);
         if (tmpin == NULL) {
             PKCS7err(PKCS7_F_PKCS7_VERIFY, ERR_R_MALLOC_FAILURE);
             goto err;