File: src/python/pyhbac.c
Function: HbacRequest_new
Error: ob_refcnt of new ref from (unknown) HbacRequestElement_new is 1 too low
1418 static PyObject *
1419 HbacRequest_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1420 {
1421     HbacRequest *self;
1422 
1423     self = (HbacRequest *) type->tp_alloc(type, 0);
when call succeeds
1424     if (self == NULL) {
taking False path
1425         PyErr_NoMemory();
1426         return NULL;
1427     }
1428 
1429     self->service = (HbacRequestElement *) HbacRequestElement_new(
when HbacRequestElement_new() succeeds
1430                                             &pyhbac_hbacrequest_element_type,
1431                                             NULL, NULL);
1432     self->user = (HbacRequestElement *) HbacRequestElement_new(
when HbacRequestElement_new() succeeds
1433                                             &pyhbac_hbacrequest_element_type,
1434                                             NULL, NULL);
1435     self->targethost = (HbacRequestElement *) HbacRequestElement_new(
when HbacRequestElement_new() succeeds
new ref from (unknown) HbacRequestElement_new allocated at:     self->targethost = (HbacRequestElement *) HbacRequestElement_new(
ob_refcnt is now refs: 1 + N where N >= 0
new ref from (unknown) HbacRequestElement_new is now referenced by 1 non-stack value(s): new ref from call through function pointer.targethost
1436                                             &pyhbac_hbacrequest_element_type,
1437                                             NULL, NULL);
1438     self->srchost = (HbacRequestElement *) HbacRequestElement_new(
when HbacRequestElement_new() fails
1439                                             &pyhbac_hbacrequest_element_type,
1440                                             NULL, NULL);
1441     if (self->service == NULL || self->user == NULL ||
taking False path
taking False path
taking False path
1442         self->targethost == NULL || self->srchost == NULL) {
taking True path
1443         Py_XDECREF(self->service);
taking False path
when taking False path
calling tp_dealloc on new ref from (unknown) HbacRequestElement_new allocated at src/python/pyhbac.c:1429
1444         Py_XDECREF(self->user);
taking False path
when taking False path
calling tp_dealloc on new ref from (unknown) HbacRequestElement_new allocated at src/python/pyhbac.c:1432
1445         Py_XDECREF(self->targethost);
taking False path
when taking True path
ob_refcnt is now refs: 0 + N where N >= 0
1446         Py_XDECREF(self->srchost);
taking True path
1447         Py_DECREF(self);
when taking True path
1448         PyErr_NoMemory();
PyErr_NoMemory() returns NULL, raising MemoryError
1449         return NULL;
1450     }
1451 
1452     return (PyObject *) self;
1453 }
ob_refcnt of new ref from (unknown) HbacRequestElement_new is 1 too low
was expecting final ob_refcnt to be N + 1 (for some unknown N)
due to object being referenced by: new ref from call through function pointer.targethost
but final ob_refcnt is N + 0
found 11 similar trace(s) to this