diff --git a/src/md5/md5.c b/src/md5/md5.c index c35d96c..d4b1113 100644 --- a/src/md5/md5.c +++ b/src/md5/md5.c @@ -53,6 +53,7 @@ #include "md5.h" #include +#include #undef BYTE_ORDER /* 1 = big-endian, -1 = little-endian, 0 = unknown */ #ifdef ARCH_IS_BIG_ENDIAN @@ -161,7 +162,7 @@ md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/) * On little-endian machines, we can process properly aligned * data without copying it. */ - if (!((data - (const md5_byte_t *)0) & 3)) { + if (!((uintptr_t)data & (4 - 1))) { /* data are properly aligned */ X = (const md5_word_t *)data; } else {