File: adnsmodule.c
Function: ADNS_State_submit_reverse
Error: ob_refcnt of '*o' is 1 too high
455 static PyObject *
456 ADNS_State_submit_reverse(
457 	ADNS_Stateobject *self,
458 	PyObject *args
459 	)
460 {
461 	char *owner;
462 	struct sockaddr_in addr;
463 	adns_rrtype type = 0;
464 	adns_queryflags flags = 0;
465 	int r;
466 	ADNS_Queryobject *o;
467 	if (!PyArg_ParseTuple(args, "si|i", &owner, &type, &flags))
when PyArg_ParseTuple() succeeds
taking False path
468 		return NULL;
469         r = inet_aton(owner, (struct in_addr *) &(addr.sin_addr));
470         if (!r) {
when considering range: -0x80000000 <= value <= -1
taking False path
471                 PyErr_SetString(ErrorObject, "invalid IP address");
472                 return NULL;
473         }
474 	addr.sin_family = AF_INET;
475 	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
476 	Py_BEGIN_ALLOW_THREADS;
releasing the GIL by calling PyEval_SaveThread()
477 	r = adns_submit_reverse(self->state, (struct sockaddr *)&addr, type, flags, o, &o->query);
478 	Py_END_ALLOW_THREADS;
reacquiring the GIL by calling PyEval_RestoreThread()
479 	if (r) {
when considering range: -0x80000000 <= value <= -1
taking True path
480 		PyErr_SetString(ErrorObject, strerror(r));
calling PyErr_SetString()
481 		return NULL;
482 	}
483 	return (PyObject *) o;
484 }
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
Error: dereferencing NULL (o->query) at adnsmodule.c:477
455 static PyObject *
456 ADNS_State_submit_reverse(
457 	ADNS_Stateobject *self,
458 	PyObject *args
459 	)
460 {
461 	char *owner;
462 	struct sockaddr_in addr;
463 	adns_rrtype type = 0;
464 	adns_queryflags flags = 0;
465 	int r;
466 	ADNS_Queryobject *o;
467 	if (!PyArg_ParseTuple(args, "si|i", &owner, &type, &flags))
when PyArg_ParseTuple() succeeds
taking False path
468 		return NULL;
469         r = inet_aton(owner, (struct in_addr *) &(addr.sin_addr));
470         if (!r) {
when considering range: -0x80000000 <= value <= -1
taking False path
471                 PyErr_SetString(ErrorObject, "invalid IP address");
472                 return NULL;
473         }
474 	addr.sin_family = AF_INET;
475 	o = newADNS_Queryobject(self);
when newADNS_Queryobject() fails
476 	Py_BEGIN_ALLOW_THREADS;
releasing the GIL by calling PyEval_SaveThread()
477 	r = adns_submit_reverse(self->state, (struct sockaddr *)&addr, type, flags, o, &o->query);
dereferencing NULL (o->query) at adnsmodule.c:477
found 1 similar trace(s) to this
478 	Py_END_ALLOW_THREADS;
479 	if (r) {
480 		PyErr_SetString(ErrorObject, strerror(r));
481 		return NULL;
482 	}
483 	return (PyObject *) o;
484 }