Errors seen in LOGS/pylibacl-0.5.0-4.fc17

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

acl.c Entry_str returning pointer to deallocated memory

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.

acl.c Entry_str 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

acl.c ACL_check ob_refcnt of PyIntObject is 1 too high
acl.c Entry_str ob_refcnt of '*format' 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)

acl.c ACL_str dereferencing NULL (ret->ob_refcnt) at acl.c:213
acl.c ACL_check calling PyTuple_Pack with NULL as argument 2 (D.14383) at acl.c:306
acl.c ACL_check calling PyTuple_Pack with NULL as argument 3 (D.14381) at acl.c:306
acl.c ACL_to_any_text dereferencing NULL (ret->ob_refcnt) at acl.c:267
acl.c Entry_str dereferencing NULL (format.74->ob_refcnt) at acl.c:746

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

acl.c Entry_get_permset ob_refcnt of '*p' is 1 too high

Implementation notes for gcc-with-cpychecker

The following "Py" functions were used but aren't yet explicitly handled by gcc-with-cpychecker