From 4e259dbbba565c6f874ead9a8974175ffc6a2bb8 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 3 Apr 2020 15:05:14 +0200 Subject: fix #6153 --- src/include/gnunet_common.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/include') diff --git a/src/include/gnunet_common.h b/src/include/gnunet_common.h index 6e185c314..6d9652a16 100644 --- a/src/include/gnunet_common.h +++ b/src/include/gnunet_common.h @@ -1098,6 +1098,19 @@ GNUNET_ntoh_double (double d); }) +/** + * Check that memory in @a a is all zeros. @a a must be a pointer. + * + * @param a pointer to @a n bytes which should be tested for the + * entire memory being zero'ed out. + * @param n number of bytes in @a to be tested + * @return 0 if a is zero, non-zero otherwise + */ +int +GNUNET_is_zero_ (const void *a, + size_t n); + + /** * Check that memory in @a a is all zeros. @a a must be a pointer. * @@ -1106,10 +1119,7 @@ GNUNET_ntoh_double (double d); * @return 0 if a is zero, non-zero otherwise */ #define GNUNET_is_zero(a) \ - ({ \ - static const typeof (*a) _z; \ - memcmp ((a), &_z, sizeof(_z)); \ - }) + GNUNET_is_zero_ (a, sizeof (a)) /** -- cgit v1.2.3