File: adnsmodule.c
Function: ADNS_State_submit_reverse_any
Error: ob_refcnt of '*o' is 1 too high
495 static PyObject *
496 ADNS_State_submit_reverse_any(
497 	ADNS_Stateobject *self,
498 	PyObject *args
499 	)
500 {
501 	char *owner, *zone;
502 	struct sockaddr_in addr;
503 	adns_rrtype type = 0;
504 	adns_queryflags flags = 0;
505 	int r;
506 	ADNS_Queryobject *o;
507 	if (!PyArg_ParseTuple(args, "ssi|i", &owner, &zone, &type, &flags))
when PyArg_ParseTuple() succeeds
taking False path
508 		return NULL;
509         r = inet_aton(owner, &(addr.sin_addr));
510         if (!r) {
when considering range: -0x80000000 <= value <= -1
taking False path
511                 PyErr_SetString(ErrorObject, "invalid IP address");
512                 return NULL;
513         }
514 	addr.sin_family = AF_INET;
515 	o = newADNS_Queryobject(self);
when newADNS_Queryobject() succeeds
new ref from (unknown) newADNS_Queryobject allocated at: 	o = newADNS_Queryobject(self);
ob_refcnt is now refs: 1 + N where N >= 0
516 	Py_BEGIN_ALLOW_THREADS;
releasing the GIL by calling PyEval_SaveThread()
517 	r = adns_submit_reverse_any(self->state, (struct sockaddr *)&addr, zone, type, flags, o, &o->query);
518 	Py_END_ALLOW_THREADS;
reacquiring the GIL by calling PyEval_RestoreThread()
519 	if (r) {
when considering range: -0x80000000 <= value <= -1
taking True path
520 		PyErr_SetString(ErrorObject, strerror(r));
calling PyErr_SetString()
521 		return NULL;
522 	}
523 	return (PyObject *) o;
524 }
ob_refcnt of '*o' 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 3 similar trace(s) to this

File: adnsmodule.c
Function: ADNS_State_submit_reverse_any
Error: dereferencing NULL (o->query) at adnsmodule.c:517
495 static PyObject *
496 ADNS_State_submit_reverse_any(
497 	ADNS_Stateobject *self,
498 	PyObject *args
499 	)
500 {
501 	char *owner, *zone;
502 	struct sockaddr_in addr;
503 	adns_rrtype type = 0;
504 	adns_queryflags flags = 0;
505 	int r;
506 	ADNS_Queryobject *o;
507 	if (!PyArg_ParseTuple(args, "ssi|i", &owner, &zone, &type, &flags))
when PyArg_ParseTuple() succeeds
taking False path
508 		return NULL;
509         r = inet_aton(owner, &(addr.sin_addr));
510         if (!r) {
when considering range: -0x80000000 <= value <= -1
taking False path
511                 PyErr_SetString(ErrorObject, "invalid IP address");
512                 return NULL;
513         }
514 	addr.sin_family = AF_INET;
515 	o = newADNS_Queryobject(self);
when newADNS_Queryobject() fails
516 	Py_BEGIN_ALLOW_THREADS;
releasing the GIL by calling PyEval_SaveThread()
517 	r = adns_submit_reverse_any(self->state, (struct sockaddr *)&addr, zone, type, flags, o, &o->query);
dereferencing NULL (o->query) at adnsmodule.c:517
found 1 similar trace(s) to this
518 	Py_END_ALLOW_THREADS;
519 	if (r) {
520 		PyErr_SetString(ErrorObject, strerror(r));
521 		return NULL;
522 	}
523 	return (PyObject *) o;
524 }