X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/1df8d5fe8538884aaeb3ccf8036b88efcc7560c5..4281a7ee8646165a39f03bcab908b30dee643dae:/ec.c?ds=sidebyside diff --git a/ec.c b/ec.c index e18cbb8..6280010 100644 --- a/ec.c +++ b/ec.c @@ -252,7 +252,7 @@ static PyObject *epmeth_tobuf(PyObject *me, PyObject *arg) if (EC_ATINF(&p)) n = 2; else - n = mp_octets(p.x) + mp_octets(p.y) + 4; + n = mp_octets(p.x) + mp_octets(p.y) + 6; rc = bytestring_pywrap(0, n); buf_init(&b, PyString_AS_STRING(rc), n); buf_putec(&b, &p); @@ -453,7 +453,7 @@ static int ecptxl_1(ec_curve *c, ec *p, PyObject *x) getecptout(p, x); goto fix; } else if (PyString_Check(x)) { - if (PyObject_AsReadBuffer(x, &q, 0)) + if (PyObject_AsReadBuffer(x, &q, &n)) goto end; qd.p = q; qd.e = 0; @@ -465,7 +465,7 @@ static int ecptxl_1(ec_curve *c, ec *p, PyObject *x) if (!EC_FIND(c, p, xx)) VALERR("not on the curve"); } else if (PySequence_Check(x)) { t = x; x = 0; - n = PySequence_Size(t); + n = PySequence_Size(t); if (n < 0) goto end; if (n != 2 && (n != 3 || !c)) TYERR("want sequence of two or three items"); if ((x = PySequence_GetItem(t, 0)) == 0 ||