]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: i_zero*() - Give compiler error if it's wrongly used on an array
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 13 Sep 2018 12:30:22 +0000 (15:30 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 14 Sep 2018 06:33:16 +0000 (06:33 +0000)
src/lib/macros.h

index b12f3764cb992aa4459e1efbe01a642dfa635601..16c69b2f276586bbd5b66d9d5a6bc11337ae5f84 100644 (file)
 #endif
 
 /* Convenience wrappers for initializing a struct */
-#define i_zero(p) memset(p, 0, sizeof(*(p)))
-#define i_zero_safe(p) safe_memset(p, 0, sizeof(*(p)))
+#define i_zero(p) \
+       memset(p, 0 +  + COMPILE_ERROR_IF_TRUE(sizeof(p) > sizeof(void *)), sizeof(*(p)))
+#define i_zero_safe(p) \
+       safe_memset(p, 0 +  + COMPILE_ERROR_IF_TRUE(sizeof(p) > sizeof(void *)), sizeof(*(p)))
 
 #define ST_CHANGED(st_a, st_b) \
        ((st_a).st_mtime != (st_b).st_mtime || \