Absolutely: the problem is two-fold... 1) in lib/md5/global.h, line 20: /* UINT4 defines a four byte word */ typedef unsigned long int UINT4;
That's not a four byte word on amd64. Proper thing would be to either use stdint's uint32_t or to do a check in configure for a 4-byte word. "unsigned int" is also 32 bits on amd64. configure would be more portable for non-GNU systems, as not all compilers support C99. 2) in lib/md5/md5c.c, line 71: #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) That assumes math is done at 32-bits, so it doesn't bother to truncate the extra bits generated from the left shift. either mask the left shift with 0xffffffff, or cast the result to UINT4 I have verified that making these changes fixes it, but my changes are not as portable as they may seem. I'm including them here for reference; they won't break any arches that aren't already broken, but if 'unsigned int' happens to be a different size on some platform, it won't work there. in global.h, line 20: typedef unsigned int UINT4; in md5c.c, line 71: #define ROTATE_LEFT(x, n) ((((x) << (n)) & 0xffffffffU) | ((x) >> (32-(n)))) On Sat, Jan 28, 2006 at 08:19:06PM +0100, Volker Christian wrote: > Hi, > > thanks for this report. Would it be possible for you do track down the > problem > as i didn't own a amd64-based machine? > > regards > voc > > > On Saturday 28 January 2006 00:15, Zinx Verituse wrote: > > Package: unshield > > Version: 0.5-3 > > Severity: important > > > > Extracting any cab on amd64 with the amd64 binary with -D 3 yields: > > [unshield_file_save:710] MD5 checksum failure for file 66 (W83627THF.ini) > > Failed to extract file 'W83627THF.ini'. > > > > Extracting with the 32-bit debian version, still on amd64, works fine > > (extracts files, does not have a checksum error) > > > > -- System Information: > > Debian Release: testing/unstable > > APT prefers unstable > > APT policy: (500, 'unstable') > > Architecture: amd64 (x86_64) > > Shell: /bin/sh linked to /bin/bash > > Kernel: Linux 2.6.15-1-amd64-k8-smp > > Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) > > > > Versions of packages unshield depends on: > > ii libc6 2.3.5-12 GNU C Library: Shared > > libraries an ii libunshield0 0.5-3 library to > > extracts CAB files from ii zlib1g 1:1.2.3-9 > > compression library - runtime > > > > unshield recommends no packages. > > > > -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]