File: src/_fastmath.c
Function: dsaKey__sign
Error: ob_refcnt of '*lr' is 1 too high
552 static PyObject *
553 dsaKey__sign (dsaKey * key, PyObject * args)
554 {
555 	PyObject *lm, *lk, *lr, *ls;
556 	mpz_t m, k, r, s;
557 	int result;
558 	if (!PyArg_ParseTuple (args, "O!O!", &PyLong_Type, &lm,
when PyArg_ParseTuple() succeeds
taking False path
559 			       &PyLong_Type, &lk))
560 	{
561 		return NULL;
562 	}
563 	mpz_init (m);
564 	mpz_init (k);
565 	mpz_init (r);
566 	mpz_init (s);
567 	longObjToMPZ (m, (PyLongObject *) lm);
568 	longObjToMPZ (k, (PyLongObject *) lk);
569 	result = dsaSign (key, m, k, r, s);
570 	if (result == 1)
when considering range: -0x80000000 <= value <= 0
taking False path
571 	{
572 		PyErr_SetString (PyExc_ValueError, "K not between 2 and q");
573 		return NULL;
574 	}
575 	lr = mpzToLongObj (r);
when mpzToLongObj() succeeds
new ref from (unknown) mpzToLongObj allocated at: 	lr = mpzToLongObj (r);
ob_refcnt is now refs: 1 + N where N >= 0
576 	ls = mpzToLongObj (s);
when mpzToLongObj() succeeds
577 	mpz_clear (m);
578 	mpz_clear (k);
579 	mpz_clear (r);
580 	mpz_clear (s);
581 	return Py_BuildValue ("(NN)", lr, ls);
when Py_BuildValue() fails
582 }
ob_refcnt of '*lr' 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: src/_fastmath.c
Function: dsaKey__sign
Error: ob_refcnt of '*ls' is 1 too high
552 static PyObject *
553 dsaKey__sign (dsaKey * key, PyObject * args)
554 {
555 	PyObject *lm, *lk, *lr, *ls;
556 	mpz_t m, k, r, s;
557 	int result;
558 	if (!PyArg_ParseTuple (args, "O!O!", &PyLong_Type, &lm,
when PyArg_ParseTuple() succeeds
taking False path
559 			       &PyLong_Type, &lk))
560 	{
561 		return NULL;
562 	}
563 	mpz_init (m);
564 	mpz_init (k);
565 	mpz_init (r);
566 	mpz_init (s);
567 	longObjToMPZ (m, (PyLongObject *) lm);
568 	longObjToMPZ (k, (PyLongObject *) lk);
569 	result = dsaSign (key, m, k, r, s);
570 	if (result == 1)
when considering range: -0x80000000 <= value <= 0
taking False path
571 	{
572 		PyErr_SetString (PyExc_ValueError, "K not between 2 and q");
573 		return NULL;
574 	}
575 	lr = mpzToLongObj (r);
when mpzToLongObj() succeeds
576 	ls = mpzToLongObj (s);
when mpzToLongObj() succeeds
new ref from (unknown) mpzToLongObj allocated at: 	ls = mpzToLongObj (s);
ob_refcnt is now refs: 1 + N where N >= 0
577 	mpz_clear (m);
578 	mpz_clear (k);
579 	mpz_clear (r);
580 	mpz_clear (s);
581 	return Py_BuildValue ("(NN)", lr, ls);
when Py_BuildValue() fails
582 }
ob_refcnt of '*ls' 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