mirror of https://github.com/python/cpython
gh-117310: Remove extra DECREF on "no ciphers" error path in `_ssl._SSLContext` constructor (#117309)
Remove extra self DECREF on ssl "no ciphers" error path. This doesn't come up in practice because nobody links against a broken OpenSSL library that provides nothing.
This commit is contained in:
parent
6c8ac8a32f
commit
8cb7d7ff86
|
@ -0,0 +1,4 @@
|
||||||
|
Fixed an unlikely early & extra ``Py_DECREF`` triggered crash in :mod:`ssl`
|
||||||
|
when creating a new ``_ssl._SSLContext`` if CPython was built implausibly such
|
||||||
|
that the default cipher list is empty **or** the SSL library it was linked
|
||||||
|
against reports a failure from its C ``SSL_CTX_set_cipher_list()`` API.
|
|
@ -3166,7 +3166,6 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
|
||||||
result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL");
|
result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL");
|
||||||
}
|
}
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
Py_DECREF(self);
|
|
||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
PyErr_SetString(get_state_ctx(self)->PySSLErrorObject,
|
PyErr_SetString(get_state_ctx(self)->PySSLErrorObject,
|
||||||
"No cipher can be selected.");
|
"No cipher can be selected.");
|
||||||
|
|
Loading…
Reference in New Issue