Errors seen in LOGS/rrdtool-1.4.7-5.fc17

This is a summary of errors seen when compiling with an experimental static analysis tool

Raw build logs can be seen here

Segfaults within error-handling paths

Code paths in error-handling that will lead to a segmentatation fault (e.g. under low memory conditions)

rrdtoolmodule.c PyRRD_graph dereferencing NULL (t->ob_refcnt) at rrdtoolmodule.c:317
rrdtoolmodule.c PyRRD_graph calling PyList_Append with NULL as argument 1 (e) at rrdtoolmodule.c:316
rrdtoolmodule.c initrrdtool calling PyDict_SetItemString with NULL as argument 3 (ErrorObject.2) at rrdtoolmodule.c:632
rrdtoolmodule.c initrrdtool calling PyDict_SetItemString with NULL as argument 3 (t) at rrdtoolmodule.c:630

Returning (PyObject*)NULL without setting an exception

These messages are often false-positives: the analysis tool has no knowledge about internal API calls that can lead to an exception being set
rrdtoolmodule.c PyRRD_graph returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_flushcached returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_updatev returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_last returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_tune returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_resize returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_info returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_first returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_graphv returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_update returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_fetch returning (PyObject*)NULL without setting an exception
rrdtoolmodule.c PyRRD_create returning (PyObject*)NULL without setting an exception