summaryrefslogtreecommitdiffstats
path: root/Lib/json/tests
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2014-04-14 02:10:38 (GMT)
committerBenjamin Peterson <benjamin@python.org>2014-04-14 02:10:38 (GMT)
commit6c939cb6f6dfbd273609577b0022542d31ae2802 (patch)
tree36d4c27f55360931fd0837841f012b2480d1a6f0 /Lib/json/tests
parent4624b00d67f9218bedf0a51f78414c69eef90dbf (diff)
downloadcpython-6c939cb6f6dfbd273609577b0022542d31ae2802.zip
cpython-6c939cb6f6dfbd273609577b0022542d31ae2802.tar.gz
cpython-6c939cb6f6dfbd273609577b0022542d31ae2802.tar.bz2
in scan_once, prevent the reading of arbitrary memory when passed a negative index
Bug reported by Guido Vranken.
Diffstat (limited to 'Lib/json/tests')
-rw-r--r--Lib/json/tests/test_decode.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/Lib/json/tests/test_decode.py b/Lib/json/tests/test_decode.py
index ffd1aa4..78d7fbb 100644
--- a/Lib/json/tests/test_decode.py
+++ b/Lib/json/tests/test_decode.py
@@ -60,5 +60,10 @@ class TestDecode(object):
msg = 'escape'
self.assertRaisesRegexp(ValueError, msg, self.loads, s)
+ def test_negative_index(self):
+ d = self.json.JSONDecoder()
+ self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000)
+ self.assertRaises(ValueError, d.raw_decode, u'a'*42, -50000)
+
class TestPyDecode(TestDecode, PyTest): pass
class TestCDecode(TestDecode, CTest): pass