1134 static PyObject *
1135 HbacRequestElement_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1136 {
1137 HbacRequestElement *self;
1138
1139 self = (HbacRequestElement *) type->tp_alloc(type, 0);
when call succeeds
1140 if (self == NULL) {
taking False path
1141 PyErr_NoMemory();
1142 return NULL;
1143 }
1144
1145 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
1146 if (self->name == NULL) {
taking False path
1147 PyErr_NoMemory();
1148 Py_DECREF(self);
1149 return NULL;
1150 }
1151
1152 self->groups = PyList_New(0);
when PyList_New() fails
1153 if (self->groups == NULL) {
taking True path
1154 Py_DECREF(self->name);
when taking True path
ob_refcnt is now refs: 0 + N where N >= 0
1155 Py_DECREF(self);
when taking True path
1156 PyErr_NoMemory();
PyErr_NoMemory() returns NULL, raising MemoryError
1157 return NULL;
1158 }
1159
1160 return (PyObject *) self;
1161 }
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