Skip to content

Commit

Permalink
Check if the option is an Hash in pkey_ctx_apply_options0()
Browse files Browse the repository at this point in the history
causes SEGV if it is an Array or something like that.
  • Loading branch information
no6v committed Aug 8, 2022
1 parent ee64d93 commit ef23525
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
1 change: 1 addition & 0 deletions ext/openssl/ossl_pkey.c
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
Expand Down
5 changes: 5 additions & 0 deletions test/openssl/test_pkey_rsa.rb
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@ def test_sign_verify_options
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
Expand Down

0 comments on commit ef23525

Please sign in to comment.