1031 static PyObject *
1032 _new_exception(
1033 PyObject *dict,
1034 char *name,
1035 PyObject *base
1036 )
1037 {
1038 PyObject *v;
1039 char longname[256];
1040
1041 sprintf(longname, "adns.%s", name);
1042 if ((v = PyErr_NewException(longname, base, NULL)) == NULL)
when PyErr_NewException() succeeds
taking False path
new exception object from PyErr_NewException allocated at: if ((v = PyErr_NewException(longname, base, NULL)) == NULL)
ob_refcnt is now refs: 1 + N where N >= 0
1043 return NULL;
1044 if (PyDict_SetItemString(dict, name, v)) return NULL;
when treating unknown char * from adnsmodule.c:1034 as non-NULL
when PyDict_SetItemString() fails
taking True path
1045 return v;
1046 }
ob_refcnt of '*v' is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1