Kaydet (Commit) 8ad64aaa authored tarafından Neal Norwitz's avatar Neal Norwitz

SF #1370197, memory leak - ast_error_finish (in error conditions).

üst af68c874
...@@ -179,8 +179,10 @@ ast_error_finish(const char *filename) ...@@ -179,8 +179,10 @@ ast_error_finish(const char *filename)
return; return;
Py_INCREF(errstr); Py_INCREF(errstr);
lineno = PyInt_AsLong(PyTuple_GetItem(value, 1)); lineno = PyInt_AsLong(PyTuple_GetItem(value, 1));
if (lineno == -1) if (lineno == -1) {
Py_DECREF(errstr);
return; return;
}
Py_DECREF(value); Py_DECREF(value);
loc = PyErr_ProgramText(filename, lineno); loc = PyErr_ProgramText(filename, lineno);
...@@ -190,8 +192,10 @@ ast_error_finish(const char *filename) ...@@ -190,8 +192,10 @@ ast_error_finish(const char *filename)
} }
tmp = Py_BuildValue("(ziOO)", filename, lineno, Py_None, loc); tmp = Py_BuildValue("(ziOO)", filename, lineno, Py_None, loc);
Py_DECREF(loc); Py_DECREF(loc);
if (!tmp) if (!tmp) {
Py_DECREF(errstr);
return; return;
}
value = Py_BuildValue("(OO)", errstr, tmp); value = Py_BuildValue("(OO)", errstr, tmp);
Py_DECREF(errstr); Py_DECREF(errstr);
Py_DECREF(tmp); Py_DECREF(tmp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment