diff --git a/Misc/NEWS.d/next/Library/2017-07-18-23-47-51.bpo-30961.064jz0.rst b/Misc/NEWS.d/next/Library/2017-07-18-23-47-51.bpo-30961.064jz0.rst new file mode 100644 index 00000000000..b89c6d4769d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2017-07-18-23-47-51.bpo-30961.064jz0.rst @@ -0,0 +1 @@ +Fix decrementing a borrowed reference in tracemalloc. diff --git a/Modules/_tracemalloc.c b/Modules/_tracemalloc.c index ec8bd960a7f..0ce38ffc78c 100644 --- a/Modules/_tracemalloc.c +++ b/Modules/_tracemalloc.c @@ -1731,7 +1731,7 @@ _PyTraceMalloc_Init(void) if (key == NULL) return -1; - value = PyDict_GetItemWithError(xoptions, key); + value = PyDict_GetItemWithError(xoptions, key); /* borrowed */ Py_DECREF(key); if (value == NULL) { if (PyErr_Occurred()) @@ -1742,7 +1742,6 @@ _PyTraceMalloc_Init(void) } nframe = parse_sys_xoptions(value); - Py_DECREF(value); if (nframe < 0) { Py_FatalError("-X tracemalloc=NFRAME: invalid number of frames"); }