From: Zackery Spytz Date: Thu, 21 Feb 2019 07:47:14 +0000 (-0700) Subject: bpo-33989: Ensure that ms.key_compare is always initialized in list_sort_impl().... X-Git-Tag: v3.8.0a2~31 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ebc793d6acb9650b9f497808e059805892031d74;p=thirdparty%2FPython%2Fcpython.git bpo-33989: Ensure that ms.key_compare is always initialized in list_sort_impl(). (GH-8710) --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-08-08-20-52-55.bpo-33989.TkLBui.rst b/Misc/NEWS.d/next/Core and Builtins/2018-08-08-20-52-55.bpo-33989.TkLBui.rst new file mode 100644 index 000000000000..056a71c480ad --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2018-08-08-20-52-55.bpo-33989.TkLBui.rst @@ -0,0 +1,2 @@ +Fix a possible crash in :meth:`list.sort` when sorting objects with +``ob_type->tp_richcompare == NULL``. Patch by Zackery Spytz. diff --git a/Objects/listobject.c b/Objects/listobject.c index a08b3b50dd9a..cbd6e81ea472 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -2334,6 +2334,9 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) else if ((ms.key_richcompare = key_type->tp_richcompare) != NULL) { ms.key_compare = unsafe_object_compare; } + else { + ms.key_compare = safe_object_compare; + } } else { ms.key_compare = safe_object_compare;