diff --git a/ext/openssl/ossl_pkey.c b/ext/openssl/ossl_pkey.c index d2fd5b29c32204..a53332b17edf84 100644 --- a/ext/openssl/ossl_pkey.c +++ b/ext/openssl/ossl_pkey.c @@ -1496,8 +1496,10 @@ ossl_pkey_derive(int argc, VALUE *argv, VALUE self) EVP_PKEY_CTX_free(ctx); ossl_raise(ePKeyError, "EVP_PKEY_derive"); } - if (keylen > LONG_MAX) + if (keylen > LONG_MAX) { + EVP_PKEY_CTX_free(ctx); rb_raise(ePKeyError, "derived key would be too large"); + } str = ossl_str_new(NULL, (long)keylen, &state); if (state) { EVP_PKEY_CTX_free(ctx); diff --git a/spec/bundler/realworld/fixtures/tapioca/Gemfile.lock b/spec/bundler/realworld/fixtures/tapioca/Gemfile.lock index 4ce06de722cfaa..c2df2f92299ad2 100644 --- a/spec/bundler/realworld/fixtures/tapioca/Gemfile.lock +++ b/spec/bundler/realworld/fixtures/tapioca/Gemfile.lock @@ -32,7 +32,7 @@ GEM thor (>= 1.2.0) yard-sorbet thor (1.4.0) - yard (0.9.37) + yard (0.9.42) yard-sorbet (0.9.0) sorbet-runtime yard