5fcf0408aa
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/113739 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openssl?expand=0&rev=75
38 lines
853 B
Diff
38 lines
853 B
Diff
Index: openssl-1.0.0g/crypto/pkcs7/pk7_smime.c
|
|
===================================================================
|
|
--- openssl-1.0.0g.orig/crypto/pkcs7/pk7_smime.c
|
|
+++ openssl-1.0.0g/crypto/pkcs7/pk7_smime.c
|
|
@@ -573,15 +573,30 @@ int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *p
|
|
return 0;
|
|
}
|
|
ret = SMIME_text(bread, data);
|
|
+ if (ret > 0 && BIO_method_type(tmpmem) == BIO_TYPE_CIPHER)
|
|
+ {
|
|
+ if (!BIO_get_cipher_status(tmpmem))
|
|
+ ret = 0;
|
|
+ }
|
|
BIO_free_all(bread);
|
|
return ret;
|
|
} else {
|
|
for(;;) {
|
|
i = BIO_read(tmpmem, buf, sizeof(buf));
|
|
- if(i <= 0) break;
|
|
+ if(i <= 0)
|
|
+ {
|
|
+ ret = 1;
|
|
+ if (BIO_method_type(tmpmem) == BIO_TYPE_CIPHER)
|
|
+ {
|
|
+ if (!BIO_get_cipher_status(tmpmem))
|
|
+ ret = 0;
|
|
+ }
|
|
+
|
|
+ break;
|
|
+ }
|
|
BIO_write(data, buf, i);
|
|
}
|
|
BIO_free_all(tmpmem);
|
|
- return 1;
|
|
+ return ret;
|
|
}
|
|
}
|