File: src/python/pyhbac.c
Function: HbacRule_new
Error: ob_refcnt of new ref from (unknown) sss_python_unicode_from_string is 1 too low
636 static PyObject *
637 HbacRule_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
638 {
639     HbacRuleObject *self;
640 
641     self = (HbacRuleObject *) type->tp_alloc(type, 0);
when call succeeds
642     if (self == NULL) {
taking False path
643         PyErr_NoMemory();
644         return NULL;
645     }
646 
647     self->name = sss_python_unicode_from_string("");
when sss_python_unicode_from_string() succeeds
new ref from (unknown) sss_python_unicode_from_string allocated at:     self->name = sss_python_unicode_from_string("");
ob_refcnt is now refs: 1 + N where N >= 0
new ref from (unknown) sss_python_unicode_from_string is now referenced by 1 non-stack value(s): new ref from call through function pointer.name
648     if (self->name == NULL) {
taking False path
649         Py_DECREF(self);
650         PyErr_NoMemory();
651         return NULL;
652     }
653 
654     self->enabled = false;
655 
656     self->services = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() succeeds
657                                                 &pyhbac_hbacrule_element_type,
658                                                 NULL, NULL);
659     self->users = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() succeeds
660                                                 &pyhbac_hbacrule_element_type,
661                                                 NULL, NULL);
662     self->targethosts = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() succeeds
663                                                 &pyhbac_hbacrule_element_type,
664                                                 NULL, NULL);
665     self->srchosts = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() fails
666                                                 &pyhbac_hbacrule_element_type,
667                                                 NULL, NULL);
668     if (self->services == NULL || self->users == NULL ||
taking False path
taking False path
taking False path
669         self->targethosts == NULL || self->srchosts == NULL) {
taking True path
670         Py_XDECREF(self->services);
taking False path
when taking True path
671         Py_XDECREF(self->users);
taking False path
when taking False path
calling tp_dealloc on new ref from (unknown) HbacRuleElement_new allocated at src/python/pyhbac.c:659
672         Py_XDECREF(self->targethosts);
taking False path
when taking False path
calling tp_dealloc on new ref from (unknown) HbacRuleElement_new allocated at src/python/pyhbac.c:662
673         Py_XDECREF(self->srchosts);
taking True path
674         Py_DECREF(self->name);
when taking True path
ob_refcnt is now refs: 0 + N where N >= 0
675         Py_DECREF(self);
when taking True path
676         PyErr_NoMemory();
PyErr_NoMemory() returns NULL, raising MemoryError
677         return NULL;
678     }
679 
680     return (PyObject *) self;
681 }
ob_refcnt of new ref from (unknown) sss_python_unicode_from_string 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.name
but final ob_refcnt is N + 0
found 3 similar trace(s) to this

File: src/python/pyhbac.c
Function: HbacRule_new
Error: ob_refcnt of new ref from (unknown) HbacRuleElement_new is 1 too low
636 static PyObject *
637 HbacRule_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
638 {
639     HbacRuleObject *self;
640 
641     self = (HbacRuleObject *) type->tp_alloc(type, 0);
when call succeeds
642     if (self == NULL) {
taking False path
643         PyErr_NoMemory();
644         return NULL;
645     }
646 
647     self->name = sss_python_unicode_from_string("");
when sss_python_unicode_from_string() succeeds
648     if (self->name == NULL) {
taking False path
649         Py_DECREF(self);
650         PyErr_NoMemory();
651         return NULL;
652     }
653 
654     self->enabled = false;
655 
656     self->services = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() succeeds
new ref from (unknown) HbacRuleElement_new allocated at:     self->services = (HbacRuleElement *) HbacRuleElement_new(
ob_refcnt is now refs: 1 + N where N >= 0
new ref from (unknown) HbacRuleElement_new is now referenced by 1 non-stack value(s): new ref from call through function pointer.services
657                                                 &pyhbac_hbacrule_element_type,
658                                                 NULL, NULL);
659     self->users = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() succeeds
660                                                 &pyhbac_hbacrule_element_type,
661                                                 NULL, NULL);
662     self->targethosts = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() succeeds
663                                                 &pyhbac_hbacrule_element_type,
664                                                 NULL, NULL);
665     self->srchosts = (HbacRuleElement *) HbacRuleElement_new(
when HbacRuleElement_new() fails
666                                                 &pyhbac_hbacrule_element_type,
667                                                 NULL, NULL);
668     if (self->services == NULL || self->users == NULL ||
taking False path
taking False path
taking False path
669         self->targethosts == NULL || self->srchosts == NULL) {
taking True path
670         Py_XDECREF(self->services);
taking False path
when taking True path
ob_refcnt is now refs: 0 + N where N >= 0
671         Py_XDECREF(self->users);
taking False path
when taking False path
calling tp_dealloc on new ref from (unknown) HbacRuleElement_new allocated at src/python/pyhbac.c:659
672         Py_XDECREF(self->targethosts);
taking False path
when taking False path
calling tp_dealloc on new ref from (unknown) HbacRuleElement_new allocated at src/python/pyhbac.c:662
673         Py_XDECREF(self->srchosts);
taking True path
674         Py_DECREF(self->name);
when taking True path
675         Py_DECREF(self);
when taking True path
676         PyErr_NoMemory();
PyErr_NoMemory() returns NULL, raising MemoryError
677         return NULL;
678     }
679 
680     return (PyObject *) self;
681 }
ob_refcnt of new ref from (unknown) HbacRuleElement_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.services
but final ob_refcnt is N + 0
found 14 similar trace(s) to this