Nikos Mavrogiannopoulos n.mavrogiannopoulos@gmail.com writes:
What about the attached patch?
Looks good! Some minor comments:
--- /dev/null +++ b/bignum-internal.h
+inline static void* _tmp_gmp_alloc(unsigned* out_n, size_t n)
+inline static void _tmp_gmp_free(void* p, size_t n)
I don't think the _tmp prefix is needed, since these are declared static.
Do you think it's important that these are inline functions? The alternative is to put them in gmp-glue.c together with with gmp_{alloc,free}_limbs, and then the TMP_GMP_*-macros could go in nettle-internal.h.
+#define TMP_GMP_DECL(name, type) type *name; \
- unsigned name##_gmp_size
Here, on the other hand, it might make sense with a prefix on the size variable. Maybe __tmp_gmp_size##name or so (I tend to use __{NAME OF MACRO}_ as prefix).
diff --git a/pkcs1-decrypt.c b/pkcs1-decrypt.c index 02d3728..96016e0 100644 --- a/pkcs1-decrypt.c +++ b/pkcs1-decrypt.c
if (*length < message_length)
- return 0;
{
ret = 0;
goto err;
}
memcpy(message, terminator + 1, message_length); *length = message_length;
- return 1;
- ret = 1;
+err:
- TMP_GMP_FREE(em);
- return ret;
}
"err" is maybe not the right name for the label, since the code is also for successful termination. "done" or "cleanup" would be better.
Regards, /Niels