Bug#391454: libyate1.0.0: MD5 broken on Big Endian architectures.

Sebastien Bernard sbernard at nerim.net
Fri Oct 6 15:55:36 UTC 2006


Package: libyate1.0.0
Version: 1.0.0-1.dfsg-2
Severity: important


Build of the YMD5.cpp is dependand of the WORDS_BIGENDIAN symbol for
building a big or little endian version.
This symbol is not defined by gcc whereas BIGENDIAN is.

This generate a MD5 version byteswaped, thus making any authentication
fails wether it is from a client or to another server.

The patch below - courtesy made by Harry Roberts - fixes this problem on sparc
but it may fix the problem for all others bigendian platforms.

--- yate-1.0.0-1.dfsg.orig/engine/YMD5.cpp
+++ yate-1.0.0-1.dfsg/engine/YMD5.cpp
@@ -37,7 +37,7 @@
 } MD5_CTX;


 -#ifndef WORDS_BIGENDIAN
 +#if defined(BIGENDIAN) || defined(WORDS_BIGENDIAN)
  #define byteReverse(buf, len)  /* Nothing */
  #else




-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: sparc (sparc64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-smp
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)

Versions of packages libyate1.0.0 depends on:
ii  libc6                       2.3.999.2-12 GNU C Library: Shared libraries
ii  libgcc1                     1:4.1.1-15   GCC support library
ii  libstdc++6                  4.1.1-15     The GNU Standard C++ Library v3

libyate1.0.0 recommends no packages.

-- no debconf information




More information about the Pkg-voip-maintainers mailing list