Errors seen in LOGS/anaconda-17.8-1.fc17

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

Raw build logs can be seen here

Reference count too low

Code paths in which the reference count of an object is left too low. This could lead to the object being deallocated too early, triggering segfaults when later accessed. Over repeated calls, these errors could accumulate, increasing the likelihood of a segfault.

isys.c doWipeRaidSuperblock ob_refcnt of return value is 1 too low

Reference leaks

Code paths in which the reference count of an object is left too high, leading to memory leaks

isys.c doMount ob_refcnt of '*tuple' is 1 too high
isys.c doUMount ob_refcnt of '*tuple' is 1 too high

Reference leak within initialization

Code paths in which the reference count of an object is left too high, but within an initialization routine, and thus likely to only happen once

isys.c init_isys ob_refcnt of PyIntObject is 1 too high

Segfaults within error-handling paths

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

isys.c doMount calling PyTuple_SetItem with NULL as argument 1 (tuple) at isys.c:197
isys.c doUMount calling PyTuple_SetItem with NULL as argument 1 (tuple) at isys.c:164
isys.c init_isys calling PyDict_SetItemString with NULL as argument 3 (D.34090) at isys.c:258
isys.c init_isys calling PyDict_SetItemString with NULL as argument 3 (D.34088) at isys.c:256
isys.c init_isys calling PyDict_SetItemString with NULL as argument 3 (D.34087) at isys.c:255

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
isys.c doPrefixToNetmask returning (PyObject*)NULL without setting an exception