269 static int
270 pwqsettings_setstr(PWQSettings *self, PyObject *value, void *setting)
271 {
272 const char *s;
273 int rc;
274
275 if (value == (PyObject *)Py_None)
taking False path
276 s = NULL;
277 else
278 s = PyString_AsString(value);
when PyString_AsString() succeeds
279
280 if (PyErr_Occurred() == NULL) {
PyErr_Occurred()
taking True path
281 if ((rc = pwquality_set_str_value(self->pwq,
when considering range: -0x80000000 <= value <= -1
taking True path
282 (int)(ssize_t)setting, s)) < 0) {
283 pwqerror(rc, NULL);
when pwqerror() succeeds
new ref from (unknown) pwqerror allocated at: pwqerror(rc, NULL);
ob_refcnt is now refs: 1 + N where N >= 0
284 return -1;
285 }
286 return 0;
287 }
288 return -1;
289 }
ob_refcnt of new ref from (unknown) pwqerror is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1