[ruby/openssl] pkcs7: raise ArgumentError for PKCS7 with no content in PKCS7.new
Fixes [Bug #19974] [pkuzco: expanded the fix for other content types] [ky: adjusted formatting and the exception type] https://github.com/ruby/openssl/commit/27e11f2d1d Co-authored-by: pkuzco <b.naamneh@gmail.com> Co-authored-by: Kazuki Yamaguchi <k@rhe.jp>
This commit is contained in:
parent
eb6f0000a4
commit
c9aa63a9e0
@ -346,6 +346,8 @@ ossl_pkcs7_initialize(int argc, VALUE *argv, VALUE self)
|
|||||||
BIO_free(in);
|
BIO_free(in);
|
||||||
if (!p7)
|
if (!p7)
|
||||||
ossl_raise(rb_eArgError, "Could not parse the PKCS7");
|
ossl_raise(rb_eArgError, "Could not parse the PKCS7");
|
||||||
|
if (!p7->d.ptr)
|
||||||
|
ossl_raise(rb_eArgError, "No content in PKCS7");
|
||||||
|
|
||||||
RTYPEDDATA_DATA(self) = p7;
|
RTYPEDDATA_DATA(self) = p7;
|
||||||
PKCS7_free(p7_orig);
|
PKCS7_free(p7_orig);
|
||||||
|
@ -155,6 +155,11 @@ class OpenSSL::TestPKCS7 < OpenSSL::TestCase
|
|||||||
assert_equal(data, p7.decrypt(@rsa1024))
|
assert_equal(data, p7.decrypt(@rsa1024))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_empty_signed_data_ruby_bug_19974
|
||||||
|
data = "-----BEGIN PKCS7-----\nMAsGCSqGSIb3DQEHAg==\n-----END PKCS7-----\n"
|
||||||
|
assert_raise(ArgumentError) { OpenSSL::PKCS7.new(data) }
|
||||||
|
end
|
||||||
|
|
||||||
def test_graceful_parsing_failure #[ruby-core:43250]
|
def test_graceful_parsing_failure #[ruby-core:43250]
|
||||||
contents = File.read(__FILE__)
|
contents = File.read(__FILE__)
|
||||||
assert_raise(ArgumentError) { OpenSSL::PKCS7.new(contents) }
|
assert_raise(ArgumentError) { OpenSSL::PKCS7.new(contents) }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user