Skip to content

Commit 594ad65

Browse files
committed
Merge branch 'maint-3.1' into maint-3.2
* maint-3.1: Ruby/OpenSSL 3.1.3 Check NULL values for deprecated EVP_PKEY_get0() functions
2 parents 17e8cd2 + 02d6f88 commit 594ad65

File tree

5 files changed

+18
-0
lines changed

5 files changed

+18
-0
lines changed

History.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,16 @@ Notable changes
5050
[[GitHub #141]](https://github.com/ruby/openssl/pull/141)
5151

5252

53+
Version 3.1.3
54+
=============
55+
56+
Bug fixes
57+
---------
58+
59+
* Fix missing NULL check for `EVP_PKEY_get0()` functions with OpenSSL 3.x.
60+
[[GitHub #957]](https://github.com/ruby/openssl/pull/957)
61+
62+
5363
Version 3.1.2
5464
=============
5565

ext/openssl/ossl_pkey_dh.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
EVP_PKEY *_pkey; \
2222
GetPKeyDH((obj), _pkey); \
2323
(dh) = EVP_PKEY_get0_DH(_pkey); \
24+
if ((dh) == NULL) \
25+
ossl_raise(eDHError, "failed to get DH from EVP_PKEY"); \
2426
} while (0)
2527

2628
/*

ext/openssl/ossl_pkey_dsa.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
EVP_PKEY *_pkey; \
2222
GetPKeyDSA((obj), _pkey); \
2323
(dsa) = EVP_PKEY_get0_DSA(_pkey); \
24+
if ((dsa) == NULL) \
25+
ossl_raise(eDSAError, "failed to get DSA from EVP_PKEY"); \
2426
} while (0)
2527

2628
static inline int

ext/openssl/ossl_pkey_ec.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ static const rb_data_type_t ossl_ec_point_type;
2222
EVP_PKEY *_pkey; \
2323
GetPKeyEC(obj, _pkey); \
2424
(key) = EVP_PKEY_get0_EC_KEY(_pkey); \
25+
if ((key) == NULL) \
26+
ossl_raise(eECError, "failed to get EC_KEY from EVP_PKEY"); \
2527
} while (0)
2628

2729
#define GetECGroup(obj, group) do { \

ext/openssl/ossl_pkey_rsa.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
EVP_PKEY *_pkey; \
2222
GetPKeyRSA((obj), _pkey); \
2323
(rsa) = EVP_PKEY_get0_RSA(_pkey); \
24+
if ((rsa) == NULL) \
25+
ossl_raise(eRSAError, "failed to get RSA from EVP_PKEY"); \
2426
} while (0)
2527

2628
static inline int

0 commit comments

Comments
 (0)