gh-92839: fixed typo in _bisectmodule.c (line 131) (GH-92849)

(cherry picked from commit 7fa9b7daa5)

Co-authored-by: oda-gitso <105083118+oda-gitso@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2022-05-28 11:31:06 -07:00 committed by GitHub
parent 48647d00bf
commit 85cb7f08ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 2 deletions

View file

@ -257,6 +257,12 @@ class TestBisect:
target target
) )
def test_insort_keynotNone(self):
x = []
y = {"a": 2, "b": 1}
for f in (self.module.insort_left, self.module.insort_right):
self.assertRaises(TypeError, f, x, y, key = "b")
class TestBisectPython(TestBisect, unittest.TestCase): class TestBisectPython(TestBisect, unittest.TestCase):
module = py_bisect module = py_bisect

View file

@ -0,0 +1 @@
Fixed crash resulting from calling bisect.insort() or bisect.insort_left() with the key argument not equal to None.

View file

@ -128,7 +128,7 @@ _bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x,
index = internal_bisect_right(a, x, lo, hi, key); index = internal_bisect_right(a, x, lo, hi, key);
} else { } else {
key_x = PyObject_CallOneArg(key, x); key_x = PyObject_CallOneArg(key, x);
if (x == NULL) { if (key_x == NULL) {
return NULL; return NULL;
} }
index = internal_bisect_right(a, key_x, lo, hi, key); index = internal_bisect_right(a, key_x, lo, hi, key);
@ -256,7 +256,7 @@ _bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x,
index = internal_bisect_left(a, x, lo, hi, key); index = internal_bisect_left(a, x, lo, hi, key);
} else { } else {
key_x = PyObject_CallOneArg(key, x); key_x = PyObject_CallOneArg(key, x);
if (x == NULL) { if (key_x == NULL) {
return NULL; return NULL;
} }
index = internal_bisect_left(a, key_x, lo, hi, key); index = internal_bisect_left(a, key_x, lo, hi, key);