From: Ezio Melotti Date: Fri, 15 Apr 2011 05:15:40 +0000 (+0300) Subject: #11845: Fix typo in rangeobject.c that caused a crash in compute_slice_indices. ... X-Git-Tag: v3.2.1b1~125 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=982ef4e0bc2b1def1117238fb5292cca5dfa2891;p=thirdparty%2FPython%2Fcpython.git #11845: Fix typo in rangeobject.c that caused a crash in compute_slice_indices. Patch by Daniel Urban. --- diff --git a/Lib/test/test_range.py b/Lib/test/test_range.py index fc310c15344b..ede07912b0cf 100644 --- a/Lib/test/test_range.py +++ b/Lib/test/test_range.py @@ -498,6 +498,15 @@ class RangeTest(unittest.TestCase): ]: self.assertEqual(list(reversed(r)), list(r)[::-1]) + def test_issue11845(self): + r = range(*slice(1, 18, 2).indices(20)) + values = {None, 0, 1, -1, 2, -2, 5, -5, 19, -19, + 20, -20, 21, -21, 30, -30, 99, -99} + for i in values: + for j in values: + for k in values - {0}: + r[i:j:k] + def test_main(): test.support.run_unittest(RangeTest) diff --git a/Misc/NEWS b/Misc/NEWS index 242ec2c33723..8043c8bd9e6b 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ What's New in Python 3.2.1? Core and Builtins ----------------- +- Issue #11845: Fix typo in rangeobject.c that caused a crash in + compute_slice_indices. Patch by Daniel Urban. + - Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch written by Charles-Francois Natali. diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index cff2ce4741ab..58d373c0b917 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -472,7 +472,7 @@ compute_slice_indices(rangeobject *r, PySliceObject *slice, if (tmp_stop == NULL) goto Fail; } else { tmp_stop = r->length; - Py_INCREF(tmp_start); + Py_INCREF(tmp_stop); } } }