Errors seen in LOGS/gnome-hearts-0.3-10.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

player-api.c python_register_ai passing uninitialized data (name.1) as argument 1 to function at player-api.c:83
player.c player_play comparison against uninitialized data (suit.3) at player.c:122
player.c player_play passing uninitialized data (suit.3) as argument 2 to function at player.c:128

Reference leaks

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

player.c player_receive_cards ob_refcnt of new ref from call to Py_BuildValue is 1 too high
player.c player_new ob_refcnt of new ref from call to PyObject_CallMethod is 1 too high
player.c player_publish_hand ob_refcnt of new ref from call to Py_BuildValue 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)

cfg.c config_publish dereferencing NULL (result->ob_refcnt) at cfg.c:185
player.c player_receive_cards calling PyList_Append with NULL as argument 1 (cards) at player.c:199
hearts.c game_score_publish dereferencing NULL (result->ob_refcnt) at hearts.c:426
hearts.c game_score_publish dereferencing NULL (score_list_game->ob_refcnt) at hearts.c:425
hearts.c game_score_publish dereferencing NULL (score_list_round->ob_refcnt) at hearts.c:424
player.c player_new calling PyString_AsString with NULL as argument 1 (result) at player.c:77
player.c player_new dereferencing NULL (result->ob_refcnt) at player.c:69
player.c player_publish_hand calling PyList_Append with NULL as argument 1 (hand) at player.c:317

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

player-api.c python_start ob_refcnt of new ref from (unknown) PyRun_FileExFlags is 1 too high