File: pwquality.c
Function: pwqerror
Error: ob_refcnt of '*py_errvalue' is 1 too high
175 static PyObject *
176 pwqerror(int rc, void *auxerror)
177 {
178         char buf[PWQ_MAX_ERROR_MESSAGE_LEN];
179         PyObject *py_errvalue;
180         const char *msg;
181 
182         msg = pwquality_strerror(buf, sizeof(buf), rc, auxerror);
183 
184         if (rc == PWQ_ERROR_MEM_ALLOC)
when considering range: -0x80000000 <= value <= -9
taking False path
185                 return PyErr_NoMemory();
186 
187         py_errvalue = Py_BuildValue("is", rc, msg);
when Py_BuildValue() succeeds
new ref from call to Py_BuildValue allocated at:         py_errvalue = Py_BuildValue("is", rc, msg);
ob_refcnt is now refs: 1 + N where N >= 0
188         if (py_errvalue == NULL)
taking False path
189                 return NULL;
190 
191         if (rc == PWQ_ERROR_UNKNOWN_SETTING || rc == PWQ_ERROR_NON_INT_SETTING
taking True path
192                 || rc == PWQ_ERROR_NON_STR_SETTING) {
193                 PyErr_SetObject(PyExc_AttributeError, py_errvalue);
calling PyErr_SetObject()
ob_refcnt is now refs: 1 + N where N >= 1
194         } else {
195                 PyErr_SetObject(PWQError, py_errvalue);
196         }
197         return NULL;
198 }
ob_refcnt of '*py_errvalue' is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1
found 4 similar trace(s) to this