Skip to content

Commit 550c44b

Browse files
gh-92839: fixed typo in _bisectmodule.c (line 131) (GH-92849) (#93321)
1 parent 9912b3d commit 550c44b

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

Lib/test/test_bisect.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,12 @@ def test_insort(self):
257257
target
258258
)
259259

260+
def test_insort_keynotNone(self):
261+
x = []
262+
y = {"a": 2, "b": 1}
263+
for f in (self.module.insort_left, self.module.insort_right):
264+
self.assertRaises(TypeError, f, x, y, key = "b")
265+
260266
class TestBisectPython(TestBisect, unittest.TestCase):
261267
module = py_bisect
262268

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed crash resulting from calling bisect.insort() or bisect.insort_left() with the key argument not equal to None.

Modules/_bisectmodule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ _bisect_insort_right_impl(PyObject *module, PyObject *a, PyObject *x,
118118
index = internal_bisect_right(a, x, lo, hi, key);
119119
} else {
120120
key_x = PyObject_CallOneArg(key, x);
121-
if (x == NULL) {
121+
if (key_x == NULL) {
122122
return NULL;
123123
}
124124
index = internal_bisect_right(a, key_x, lo, hi, key);
@@ -245,7 +245,7 @@ _bisect_insort_left_impl(PyObject *module, PyObject *a, PyObject *x,
245245
index = internal_bisect_left(a, x, lo, hi, key);
246246
} else {
247247
key_x = PyObject_CallOneArg(key, x);
248-
if (x == NULL) {
248+
if (key_x == NULL) {
249249
return NULL;
250250
}
251251
index = internal_bisect_left(a, key_x, lo, hi, key);

0 commit comments

Comments
 (0)