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