static PyObject *buferr;
-#define BUFERR() do { PyErr_SetNone(buferr); goto end; } while (0)
+#define BUFERR(str) do { PyErr_SetString(buferr, str); goto end; } while (0)
/*----- Read buffers ------------------------------------------------------*/
size_t n;
if (!PyArg_ParseTuple(arg, "O&:skip", convszt, &n)) goto end;
- if (!buf_get(BUF_B(me), n)) BUFERR();
+ if (!buf_get(BUF_B(me), n)) BUFERR("buffer exhausted");
RETURN_ME;
end:
return (0);
size_t n;
if (!PyArg_ParseTuple(arg, "O&:get", convszt, &n)) goto end;
- if ((p = buf_get(BUF_B(me), n)) == 0) BUFERR();
+ if ((p = buf_get(BUF_B(me), n)) == 0) BUFERR("buffer exhausted");
return (bytestring_pywrap(p, n));
end:
return (0);
{ \
uint##n x; \
if (!PyArg_ParseTuple(arg, ":getu" #w)) goto end; \
- if (buf_getu##w(BUF_B(me), &x)) BUFERR(); \
+ if (buf_getu##w(BUF_B(me), &x)) BUFERR("buffer exhausted"); \
if (MASK##W <= ULONG_MAX) return (getulong(x)); \
else { kludge64 y; ASSIGN64(y, x); return (getk64(y)); } \
end: \
size_t sz; \
char *q; \
if (!PyArg_ParseTuple(arg, ":getblk" #w)) goto end; \
- if ((q = buf_getmem##w(BUF_B(me), &sz)) == 0) BUFERR(); \
+ if ((q = buf_getmem##w(BUF_B(me), &sz)) == 0) \
+ BUFERR("buffer exhausted"); \
return (bytestring_pywrap(q, sz)); \
end: \
return (0); \
buf_pyobj *b; \
buf bb; \
if (!PyArg_ParseTuple(arg, ":getbuf" #w)) goto end; \
- if (buf_getbuf##w(BUF_B(me), &bb)) BUFERR(); \
+ if (buf_getbuf##w(BUF_B(me), &bb)) BUFERR("buffer exhausted"); \
b = PyObject_NEW(buf_pyobj, rbuf_pytype); \
b->b = bb; \
b->sub = me; \
{
mp *x;
if (!PyArg_ParseTuple(arg, ":getmp")) goto end;
- if ((x = buf_getmp(BUF_B(me))) == 0) BUFERR();
+ if ((x = buf_getmp(BUF_B(me))) == 0) BUFERR("buffer exhausted");
return (mp_pywrap(x));
end:
return (0);
{
mp *x;
if (!PyArg_ParseTuple(arg, ":getgf")) goto end;
- if ((x = buf_getmp(BUF_B(me))) == 0) BUFERR();
+ if ((x = buf_getmp(BUF_B(me))) == 0) BUFERR("buffer exhausted");
return (gf_pywrap(x));
end:
return (0);
if (!PyType_Check(cobj) ||
!PyType_IsSubtype((PyTypeObject *)cobj, ecpt_pytype))
TYERR("expected elliptic curve type");
- if (buf_getec(BUF_B(me), &pt)) BUFERR();
+ if (buf_getec(BUF_B(me), &pt)) BUFERR("buffer exhausted");
return (ecpt_pywrapout(cobj, &pt));
end:
return (0);
ec pt = EC_INIT;
if (!PyArg_ParseTuple(arg, "O!:getecptraw", eccurve_pytype, &cobj))
goto end;
- if (ec_getraw(ECCURVE_C(cobj), BUF_B(me), &pt)) BUFERR();
+ if (ec_getraw(ECCURVE_C(cobj), BUF_B(me), &pt)) BUFERR("buffer exhausted");
return (ecpt_pywrapout(cobj, &pt));
end:
return (0);
ge *x = 0;
if (!PyArg_ParseTuple(arg, "O!:getge", group_pytype, &gobj)) goto end;
x = G_CREATE(GROUP_G(gobj));
- if (G_FROMBUF(GROUP_G(gobj), BUF_B(me), x)) BUFERR();
+ if (G_FROMBUF(GROUP_G(gobj), BUF_B(me), x)) BUFERR("buffer exhausted");
return (ge_pywrap(gobj, x));
end:
if (x) G_DESTROY(GROUP_G(gobj), x);
ge *x = 0;
if (!PyArg_ParseTuple(arg, "O!:getgeraw", group_pytype, &gobj)) goto end;
x = G_CREATE(GROUP_G(gobj));
- if (G_FROMRAW(GROUP_G(gobj), BUF_B(me), x)) BUFERR();
+ if (G_FROMRAW(GROUP_G(gobj), BUF_B(me), x)) BUFERR("buffer exhausted");
return (ge_pywrap(gobj, x));
end:
if (x) G_DESTROY(GROUP_G(gobj), x);