summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/json/tests/test_scanstring.py3
-rw-r--r--Modules/_json.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/Lib/json/tests/test_scanstring.py b/Lib/json/tests/test_scanstring.py
index 2d55672..2e9136b 100644
--- a/Lib/json/tests/test_scanstring.py
+++ b/Lib/json/tests/test_scanstring.py
@@ -102,3 +102,6 @@ class TestScanString(TestCase):
self.assertEquals(
scanstring('["Bad value", truth]', 2, True),
('Bad value', 12))
+
+ def test_overflow(self):
+ self.assertRaises(OverflowError, json.decoder.scanstring, b"xxx", sys.maxsize+1)
diff --git a/Modules/_json.c b/Modules/_json.c
index 45f4b58..c44dbac 100644
--- a/Modules/_json.c
+++ b/Modules/_json.c
@@ -133,9 +133,9 @@ _convertPyInt_AsSsize_t(PyObject *o, Py_ssize_t *size_ptr)
{
/* PyObject to Py_ssize_t converter */
*size_ptr = PyLong_AsSsize_t(o);
- if (*size_ptr == -1 && PyErr_Occurred());
- return 1;
- return 0;
+ if (*size_ptr == -1 && PyErr_Occurred())
+ return 0;
+ return 1;
}
static PyObject *