From f71ba95e9146872200bbc474337b41b0b4d964de Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 5 May 2009 07:48:12 +0000 Subject: #5932: fix error return in _convertPyInt_AsSsize_t() conversion function. --- Lib/json/tests/test_scanstring.py | 3 +++ Modules/_json.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Lib/json/tests/test_scanstring.py b/Lib/json/tests/test_scanstring.py index 6b600db..53d0b66 100644 --- a/Lib/json/tests/test_scanstring.py +++ b/Lib/json/tests/test_scanstring.py @@ -107,3 +107,6 @@ class TestScanString(TestCase): "xxx") self.assertRaises(UnicodeDecodeError, json.encoder.encode_basestring_ascii, b"xx\xff") + + 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 0e30469..cfe8708 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -143,9 +143,9 @@ _convertPyInt_AsSsize_t(PyObject *o, Py_ssize_t *size_ptr) { /* PyObject to Py_ssize_t converter */ *size_ptr = PyInt_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 * -- cgit v0.12