summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2019-03-19-15-46-42.bpo-36374.EWKMZE.rst2
-rw-r--r--Python/compile.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-03-19-15-46-42.bpo-36374.EWKMZE.rst b/Misc/NEWS.d/next/Core and Builtins/2019-03-19-15-46-42.bpo-36374.EWKMZE.rst
new file mode 100644
index 0000000000..2eac301368
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-03-19-15-46-42.bpo-36374.EWKMZE.rst
@@ -0,0 +1,2 @@
+Fix a possible null pointer dereference in ``merge_consts_recursive()``.
+Patch by Zackery Spytz.
diff --git a/Python/compile.c b/Python/compile.c
index 697833752b..3656a7e00e 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1210,7 +1210,7 @@ merge_consts_recursive(struct compiler *c, PyObject *o)
PyObject *t = PyDict_SetDefault(c->c_const_cache, key, key);
if (t != key) {
// o is registered in c_const_cache. Just use it.
- Py_INCREF(t);
+ Py_XINCREF(t);
Py_DECREF(key);
return t;
}