[Python-checkins] cpython (3.5): Issue #24913: Fix overrun error in deque.index().

brett.cannon python-checkins at python.org
Fri Sep 4 00:35:55 CEST 2015


https://hg.python.org/cpython/rev/9f8c59e61594
changeset: 97638:9f8c59e61594
branch: 3.5
parent: 97583:e9df8543d7bc
user: Brett Cannon <brett at python.org>
date: Thu Sep 03 10:15:03 2015 -0700
summary:
 Issue #24913: Fix overrun error in deque.index().
Reported by John Leitch and Bryce Darling, patch by Raymond Hettinger.
files:
 Lib/test/test_deque.py | 5 +++++
 Misc/NEWS | 3 +++
 Modules/_collectionsmodule.c | 2 ++
 3 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py
--- a/Lib/test/test_deque.py
+++ b/Lib/test/test_deque.py
@@ -289,6 +289,11 @@
 else:
 self.assertEqual(d.index(element, start, stop), target)
 
+ def test_insert_bug_24913(self):
+ d = deque('A' * 3)
+ with self.assertRaises(ValueError):
+ i = d.index("Hello world", 0, 4)
+
 def test_insert(self):
 # Test to make sure insert behaves like lists
 elements = 'ABCDEFGHI'
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,9 @@
 Library
 -------
 
+- Issue #24913: Fix overrun error in deque.index().
+ Found by John Leitch and Bryce Darling.
+
 
 What's New in Python 3.5.0 release candidate 2?
 ===============================================
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -924,6 +924,8 @@
 if (stop < 0)
 stop = 0;
 }
+ if (stop > Py_SIZE(deque))
+ stop = Py_SIZE(deque);
 
 for (i=0 ; i<stop ; i++) {
 if (i >= start) {
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /