Importing, exporting and byteswapping zero length data should not
happen.

Signed-off-by: Pablo Neira Ayuso <pa...@netfilter.org>
---
Probably this helps spot more problems with s390.

 src/gmputil.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/gmputil.c b/src/gmputil.c
index a25f42ee2b64..424a83842b8d 100644
--- a/src/gmputil.c
+++ b/src/gmputil.c
@@ -94,6 +94,8 @@ void *mpz_export_data(void *data, const mpz_t op,
        enum mpz_word_order order;
        enum mpz_byte_order endian;
 
+       assert(len > 0);
+
        switch (byteorder) {
        case BYTEORDER_BIG_ENDIAN:
        default:
@@ -118,6 +120,8 @@ void mpz_import_data(mpz_t rop, const void *data,
        enum mpz_word_order order;
        enum mpz_byte_order endian;
 
+       assert(len > 0);
+
        switch (byteorder) {
        case BYTEORDER_BIG_ENDIAN:
        default:
@@ -137,6 +141,8 @@ void mpz_switch_byteorder(mpz_t rop, unsigned int len)
 {
        char data[len];
 
+       assert(len > 0);
+
        mpz_export_data(data, rop, BYTEORDER_BIG_ENDIAN, len);
        mpz_import_data(rop, data, BYTEORDER_HOST_ENDIAN, len);
 }
-- 
2.11.0


Reply via email to