Errors seen in LOGS/python-imaging-1.1.7-4.fc16

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

Raw build logs can be seen here

Unclassified errors

The triager didn't know how to classify these ones

_imaging.c _getbbox passing uninitialized data (D.17819) as argument 3 to function at _imaging.c:1780

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

_imaging.c init_imaging ob_refcnt of PyStringObject 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)

_imaging.c _getcolors calling PyList_SetItem with NULL as argument 1 (out) at _imaging.c:1808
_imaging.c init_imaging calling PyDict_SetItemString with NULL as argument 3 (D.15749) at _imaging.c:3278
_imaging.c init_imaging calling PyDict_SetItemString with NULL as argument 3 (D.15747) at _imaging.c:3271
_imaging.c _histogram calling PyList_SetItem with NULL as argument 1 (list) at _imaging.c:1045
_imaging.c _histogram dereferencing NULL (list->ob_refcnt) at _imaging.c:1041

Possible reference leaks

Code paths in which the reference count of an object might too large - but in which the reference in question came from a function not known to the analyzer.

The analyzer assumes such references are new references, but if the function returns a borrowed reference instead, it's probably not a bug

_imaging.c _getcolors ob_refcnt of new ref from (unknown) getpixel is 1 too high

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
_imaging.c _transform2 returning (PyObject*)NULL without setting an exception
_imaging.c PyImagingNew returning (PyObject*)NULL without setting an exception
_imaging.c _draw_chord returning (PyObject*)NULL without setting an exception
_imaging.c _putpixel returning (PyObject*)NULL without setting an exception
_imaging.c _convert2 returning (PyObject*)NULL without setting an exception
_imaging.c _save_ppm returning (PyObject*)NULL without setting an exception
_imaging.c _draw_pieslice returning (PyObject*)NULL without setting an exception
_imaging.c pixel_access_getitem returning (PyObject*)NULL without setting an exception
_imaging.c _getcolors returning (PyObject*)NULL without setting an exception
_imaging.c _putband returning (PyObject*)NULL without setting an exception
_imaging.c _draw_ink returning (PyObject*)NULL without setting an exception
_imaging.c im_setmode returning (PyObject*)NULL without setting an exception
_imaging.c _draw_line returning (PyObject*)NULL without setting an exception
_imaging.c _getpixel returning (PyObject*)NULL without setting an exception
_imaging.c _copy2 returning (PyObject*)NULL without setting an exception
_imaging.c _histogram returning (PyObject*)NULL without setting an exception
_imaging.c _draw_arc returning (PyObject*)NULL without setting an exception
_imaging.c _getextrema returning (PyObject*)NULL without setting an exception
_imaging.c _fillband returning (PyObject*)NULL without setting an exception
_imaging.c _draw_point returning (PyObject*)NULL without setting an exception