From a64a1c920660b0c1e4dd5a9573004cd527e15184 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Tue, 29 Oct 2024 12:03:18 +0300 Subject: [PATCH] gh-126106: Fix `NULL` possible derefrence in `Modules/_ssl.c` (#126111) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> --- .../Library/2024-10-29-10-58-52.gh-issue-126106.rlF798.rst | 1 + Modules/_ssl.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2024-10-29-10-58-52.gh-issue-126106.rlF798.rst diff --git a/Misc/NEWS.d/next/Library/2024-10-29-10-58-52.gh-issue-126106.rlF798.rst b/Misc/NEWS.d/next/Library/2024-10-29-10-58-52.gh-issue-126106.rlF798.rst new file mode 100644 index 00000000000..de989007b4c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2024-10-29-10-58-52.gh-issue-126106.rlF798.rst @@ -0,0 +1 @@ +Fixes a possible ``NULL`` pointer dereference in :mod:`ssl`. diff --git a/Modules/_ssl.c b/Modules/_ssl.c index 62a94314512..54bac28e5be 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -5424,14 +5424,14 @@ PySSLSession_dealloc(PySSLSession *self) static PyObject * PySSLSession_richcompare(PyObject *left, PyObject *right, int op) { - int result; - PyTypeObject *sesstype = ((PySSLSession*)left)->ctx->state->PySSLSession_Type; - if (left == NULL || right == NULL) { PyErr_BadInternalCall(); return NULL; } + int result; + PyTypeObject *sesstype = ((PySSLSession*)left)->ctx->state->PySSLSession_Type; + if (!Py_IS_TYPE(left, sesstype) || !Py_IS_TYPE(right, sesstype)) { Py_RETURN_NOTIMPLEMENTED; }