File: radix_python.c
Function: radix_getstate
Error: ob_refcnt of new ref from call to Py_BuildValue is 2 too high
524 static PyObject *
525 radix_getstate(RadixObject *self)
526 {
527 	radix_node_t *node;
528 	PyObject *ret;
529 	RadixNodeObject *rnode;
530 
531 	if ((ret = PyList_New(0)) == NULL)
when PyList_New() succeeds
taking False path
532 		return NULL;
533 
534 	RADIX_WALK(self->rt4->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:534 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as NULL
taking False path
535 		if (node->data != NULL) {
when treating unknown void * from radix_python.c:535 as non-NULL
taking True path
536 			rnode = (RadixNodeObject *)node->data;
537 			PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:536 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
new ref from call to Py_BuildValue allocated at: 			PyList_Append(ret, Py_BuildValue("(OO)",
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 2 + N where N >= 0
new ref from call to Py_BuildValue is now referenced by 1 non-stack value(s): PyListObject.ob_item[0]
538 			    rnode->prefix, rnode->user_attr));
539 			Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:539 as non-NULL
540 			Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:540 as non-NULL
541 		}
542 	} RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
543 	RADIX_WALK(self->rt6->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:543 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as NULL
taking False path
544 		if (node->data != NULL) {
when treating unknown void * from radix_python.c:544 as non-NULL
taking True path
545 			rnode = (RadixNodeObject *)node->data;
546 			PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:545 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
new ref from call to Py_BuildValue is now referenced by 0 non-stack value(s): 
547 			    rnode->prefix, rnode->user_attr));
548 			Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:548 as non-NULL
549 			Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:549 as non-NULL
550 		}
551 	} RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
552 
553 	return (ret);
554 }
ob_refcnt of new ref from call to Py_BuildValue is 2 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 2
found 3 similar trace(s) to this

File: radix_python.c
Function: radix_getstate
Error: ob_refcnt of new ref from call to Py_BuildValue is 1 too high
524 static PyObject *
525 radix_getstate(RadixObject *self)
526 {
527 	radix_node_t *node;
528 	PyObject *ret;
529 	RadixNodeObject *rnode;
530 
531 	if ((ret = PyList_New(0)) == NULL)
when PyList_New() succeeds
taking False path
532 		return NULL;
533 
534 	RADIX_WALK(self->rt4->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:534 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:534 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as NULL
taking False path
535 		if (node->data != NULL) {
when treating unknown void * from radix_python.c:535 as non-NULL
taking True path
536 			rnode = (RadixNodeObject *)node->data;
537 			PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:536 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
538 			    rnode->prefix, rnode->user_attr));
539 			Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:539 as non-NULL
540 			Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:540 as non-NULL
541 		}
542 	} RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:542 as non-NULL
taking True path
543 	RADIX_WALK(self->rt6->head, node) {
when treating unknown struct radix_tree_t * from radix_python.c:543 as non-NULL
when treating unknown struct radix_node_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct prefix_t * from radix_python.c:543 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as NULL
taking False path
544 		if (node->data != NULL) {
when treating unknown void * from radix_python.c:544 as non-NULL
taking True path
545 			rnode = (RadixNodeObject *)node->data;
546 			PyList_Append(ret, Py_BuildValue("(OO)",
when treating unknown void * from radix_python.c:545 as non-NULL
when Py_BuildValue() succeeds
when PyList_Append() succeeds
new ref from call to Py_BuildValue allocated at: 			PyList_Append(ret, Py_BuildValue("(OO)",
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 2 + N where N >= 0
new ref from call to Py_BuildValue is now referenced by 1 non-stack value(s): PyListObject.ob_item[0]
547 			    rnode->prefix, rnode->user_attr));
548 			Py_INCREF(rnode->prefix);
when treating unknown struct PyObject * from radix_python.c:548 as non-NULL
549 			Py_INCREF(rnode->user_attr);
when treating unknown struct PyObject * from radix_python.c:549 as non-NULL
550 		}
551 	} RADIX_WALK_END;
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
when treating unknown struct _radix_node_t * from radix_python.c:551 as non-NULL
taking True path
552 
553 	return (ret);
554 }
ob_refcnt of new ref from call to Py_BuildValue is 1 too high
was expecting final ob_refcnt to be N + 1 (for some unknown N)
due to object being referenced by: PyListObject.ob_item[0]
but final ob_refcnt is N + 2
found 15 similar trace(s) to this