From 8202d0fb87c540717667bc73aab7461961973b65 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 14 Aug 2019 10:07:22 +0200 Subject: gmputil: assert length is non-zero Importing, exporting and byteswapping zero length data should not happen. Use macro definition so we know from where the assertion is triggered in the code for easier diagnosing in the future. When importing datatype.h from gmputil.h, it seems gcc complains on missing declarations in json.h. Signed-off-by: Pablo Neira Ayuso --- src/gmputil.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/gmputil.c') diff --git a/src/gmputil.c b/src/gmputil.c index a25f42ee..b356460f 100644 --- a/src/gmputil.c +++ b/src/gmputil.c @@ -87,9 +87,8 @@ uint16_t mpz_get_be16(const mpz_t op) return mpz_get_type(uint16_t, MPZ_BIG_ENDIAN, op); } -void *mpz_export_data(void *data, const mpz_t op, - enum byteorder byteorder, - unsigned int len) +void *__mpz_export_data(void *data, const mpz_t op, enum byteorder byteorder, + unsigned int len) { enum mpz_word_order order; enum mpz_byte_order endian; @@ -111,9 +110,8 @@ void *mpz_export_data(void *data, const mpz_t op, return data; } -void mpz_import_data(mpz_t rop, const void *data, - enum byteorder byteorder, - unsigned int len) +void __mpz_import_data(mpz_t rop, const void *data, enum byteorder byteorder, + unsigned int len) { enum mpz_word_order order; enum mpz_byte_order endian; @@ -133,12 +131,12 @@ void mpz_import_data(mpz_t rop, const void *data, mpz_import(rop, len, order, 1, endian, 0, data); } -void mpz_switch_byteorder(mpz_t rop, unsigned int len) +void __mpz_switch_byteorder(mpz_t rop, unsigned int len) { char data[len]; - mpz_export_data(data, rop, BYTEORDER_BIG_ENDIAN, len); - mpz_import_data(rop, data, BYTEORDER_HOST_ENDIAN, len); + __mpz_export_data(data, rop, BYTEORDER_BIG_ENDIAN, len); + __mpz_import_data(rop, data, BYTEORDER_HOST_ENDIAN, len); } #ifndef HAVE_LIBGMP -- cgit v1.2.3