1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[ruby/openssl] Check if the option is an Hash in pkey_ctx_apply_options0()

causes SEGV if it is an Array or something like that.

https://github.com/ruby/openssl/commit/ef23525210
This commit is contained in:
Nobuhiro IMAI 2022-08-05 18:42:06 +09:00 committed by Kazuki Yamaguchi
parent c865e8d161
commit a98096349e
2 changed files with 6 additions and 0 deletions

View file

@ -200,6 +200,7 @@ static VALUE
pkey_ctx_apply_options0(VALUE args_v)
{
VALUE *args = (VALUE *)args_v;
Check_Type(args[1], T_HASH);
rb_block_call(args[1], rb_intern("each"), 0, NULL,
pkey_ctx_apply_options_i, args[0]);

View file

@ -108,6 +108,11 @@ class OpenSSL::TestPKeyRSA < OpenSSL::PKeyTestCase
salt_length: 20, mgf1_hash: "SHA1")
# Defaults to PKCS #1 v1.5 padding => verification failure
assert_equal false, key.verify("SHA256", sig_pss, data)
# option type check
assert_raise_with_message(TypeError, /expected Hash/) {
key.sign("SHA256", data, ["x"])
}
end
def test_sign_verify_raw