diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2021-04-12 13:55:10 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2021-12-20 23:42:00 +0900 |
commit | 02a58fbfd1406acde30bb7ca4d019f2bd09bfacd (patch) | |
tree | 24dde47bb74050059668826e894b435fb4e7eb12 | |
parent | 6ef0f272ebb2a4bd95471afcfe5224e72d2dad62 (diff) | |
download | ruby-02a58fbfd1406acde30bb7ca4d019f2bd09bfacd.tar.gz |
[ruby/openssl] pkey: do not check NULL argument in ossl_pkey_new()
Passing NULL to ossl_pkey_new() makes no sense in the first place, and
in fact it is ensured not to be NULL in all cases.
https://github.com/ruby/openssl/commit/316cb2a41f
-rw-r--r-- | ext/openssl/ossl_pkey.c | 6 | ||||
-rw-r--r-- | ext/openssl/ossl_pkey.h | 1 |
2 files changed, 2 insertions, 5 deletions
diff --git a/ext/openssl/ossl_pkey.c b/ext/openssl/ossl_pkey.c index b08168a581..6fae01db73 100644 --- a/ext/openssl/ossl_pkey.c +++ b/ext/openssl/ossl_pkey.c @@ -39,12 +39,8 @@ pkey_new0(VALUE arg) { EVP_PKEY *pkey = (EVP_PKEY *)arg; VALUE klass, obj; - int type; - if (!pkey || (type = EVP_PKEY_base_id(pkey)) == EVP_PKEY_NONE) - ossl_raise(rb_eRuntimeError, "pkey is empty"); - - switch (type) { + switch (EVP_PKEY_base_id(pkey)) { #if !defined(OPENSSL_NO_RSA) case EVP_PKEY_RSA: klass = cRSA; break; #endif diff --git a/ext/openssl/ossl_pkey.h b/ext/openssl/ossl_pkey.h index 4beede22b5..f0476780fb 100644 --- a/ext/openssl/ossl_pkey.h +++ b/ext/openssl/ossl_pkey.h @@ -35,6 +35,7 @@ extern const rb_data_type_t ossl_evp_pkey_type; } \ } while (0) +/* Takes ownership of the EVP_PKEY */ VALUE ossl_pkey_new(EVP_PKEY *); void ossl_pkey_check_public_key(const EVP_PKEY *); EVP_PKEY *ossl_pkey_read_generic(BIO *, VALUE); |