X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/862414c1fb14417cf57b4fad4798fd5833ef0325..efde4c99dae1a3ad56610e05d3a23b195060041e:/catacomb.c diff --git a/catacomb.c b/catacomb.c index d7b3dc7..d82ed7c 100644 --- a/catacomb.c +++ b/catacomb.c @@ -31,7 +31,8 @@ /*----- Main code ---------------------------------------------------------*/ static const struct nameval consts[] = { -#define C(x) { #x, x } +#define CF(f, x) { #x, f, x } +#define C(x) { #x, 0, x } C(FTY_PRIME), C(FTY_BINARY), C(PGEN_PASS), C(PGEN_FAIL), C(PGEN_BEGIN), C(PGEN_TRY), C(PGEN_DONE), C(PGEN_ABORT), @@ -51,10 +52,11 @@ static const struct nameval consts[] = { C(ED25519_KEYSZ), C(ED25519_PUBSZ), C(ED25519_SIGSZ), C(ED25519_MAXPERSOSZ), C(ED448_KEYSZ), C(ED448_PUBSZ), C(ED448_SIGSZ), C(ED448_MAXPERSOSZ), -#define ENTRY(tag, val, str) C(KERR_##tag), +#define ENTRY(tag, val, str) CF(CF_SIGNED, KERR_##tag), KEY_ERRORS(ENTRY) #undef ENTRY #undef C +#undef CF { 0 } }; @@ -74,7 +76,8 @@ PyObject *mexp_common(PyObject *me, PyObject *arg, arg = PyTuple_GetItem(arg, 0); Py_INCREF(arg); if (!PySequence_Check(arg)) TYERR("not a sequence"); - n = PySequence_Size(arg); if (!n) { z = id(me); goto end; } + n = PySequence_Size(arg); if (n < 0) goto end; + if (!n) { z = id(me); goto end; } x = PySequence_GetItem(arg, 0); if (PySequence_Check(x)) flat = 0;