Issue #16076: check for return value of PyTuple_New for args (following

Coverity report) and cleanup code.
This commit is contained in:
Eli Bendersky 2013-01-12 05:42:38 -08:00
parent b8f6dc855c
commit 799e3edaf7
1 changed files with 11 additions and 8 deletions

View File

@ -950,19 +950,22 @@ element_setstate_from_Python(ElementObject *self, PyObject *state)
PICKLED_TAIL, PICKLED_CHILDREN, 0};
PyObject *args;
PyObject *tag, *attrib, *text, *tail, *children;
int error;
PyObject *retval;
/* More instance dict members than we know to handle? */
tag = attrib = text = tail = children = NULL;
args = PyTuple_New(0);
error = ! PyArg_ParseTupleAndKeywords(args, state, "|$OOOOO", kwlist, &tag,
&attrib, &text, &tail, &children);
Py_DECREF(args);
if (error)
if (!args)
return NULL;
if (PyArg_ParseTupleAndKeywords(args, state, "|$OOOOO", kwlist, &tag,
&attrib, &text, &tail, &children))
retval = element_setstate_from_attributes(self, tag, attrib, text,
tail, children);
else
return element_setstate_from_attributes(self, tag, attrib, text,
tail, children);
retval = NULL;
Py_DECREF(args);
return retval;
}
static PyObject *