From: sobolevn Date: Tue, 29 Oct 2024 09:03:18 +0000 (+0300) Subject: gh-126106: Fix `NULL` possible derefrence in `Modules/_ssl.c` (#126111) X-Git-Tag: v3.14.0a2~267 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a64a1c920660b0c1e4dd5a9573004cd527e15184;p=thirdparty%2FPython%2Fcpython.git gh-126106: Fix `NULL` possible derefrence in `Modules/_ssl.c` (#126111) Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> --- 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 000000000000..de989007b4c3 --- /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 62a94314512d..54bac28e5bec 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; }