diff options
-rw-r--r-- | Misc/NEWS.d/next/Library/2019-03-14-15-54-46.bpo-36291.UalHXP.rst | 1 | ||||
-rw-r--r-- | Modules/_json.c | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/Misc/NEWS.d/next/Library/2019-03-14-15-54-46.bpo-36291.UalHXP.rst b/Misc/NEWS.d/next/Library/2019-03-14-15-54-46.bpo-36291.UalHXP.rst new file mode 100644 index 0000000..07d780c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-03-14-15-54-46.bpo-36291.UalHXP.rst @@ -0,0 +1 @@ +Fix a possible reference leak in the json module. diff --git a/Modules/_json.c b/Modules/_json.c index 3a88882..050d37d 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -1375,8 +1375,10 @@ _match_number_str(PyScannerObject *s, PyObject *pystr, Py_ssize_t start, Py_ssiz else { double d = PyOS_string_to_double(PyString_AS_STRING(numstr), NULL, NULL); - if (d == -1.0 && PyErr_Occurred()) + if (d == -1.0 && PyErr_Occurred()) { + Py_DECREF(numstr); return NULL; + } rval = PyFloat_FromDouble(d); } } |