This patch should fix operation of ed2k_hash on 64-bit
machines. Most 32-bit machines use ILP32 which means
int and long are both 32 bits, but IA64 and AMD64 use
LP64 which means int is 32 bits and long is 64 bits.
For more info, see
The md4.h header incorrectly made the assumption that
long is 4 bytes, which is not true on LP64 machines.
This patch makes the UINT4 type an int, which is 32
bits (4 bytes) on both ILP32 and LP64 systems. The
patch has been tested on AMD64 with gcc 4.0.3 without
error, and on x86 with gcc 4.0.4 without regression.
Further testing may be required before considering this
Note: This patch will fail on MIPS64 systems, as MIPS
uses ILP64. The code prior to this patch will fail on
MIPS64 as well.
Log in to post a comment.