I installed Jabberd2 from the latest Debian/Ubuntu package available (2.2.8 I believe). The only crypto-related library I could find that changed in my upgrade is libgcrypt (went from 1.4.5-2 to 1.4.6-4).

Just as a test, I located the relevant portion of the jabberd2 source code (storage/authreg_mysql.c). I then replicated it's use of the crypt function into a sample C program of my own. When compiling/linking, I get: undefined reference to `crypt'. So whatever has gone wrong seems to have occurred at a very basic level.

I'm not sure what to make of the output at all, but i ran ldd on the authreg_mysql.o file as you suggested and go this output:

    linux-gate.so.1 =>  (0xf57fe000)
    libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 (0xb7577000)
    libpam.so.0 => /lib/i386-linux-gnu/libpam.so.0 (0xb756a000)
    libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0xb7522000)
    libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0xb73d5000)
    libgsasl.so.7 => /usr/lib/libgsasl.so.7 (0xb73bf000)
    libudns.so.0 => /usr/lib/libudns.so.0 (0xb73b2000)
    libidn.so.11 => /usr/lib/libidn.so.11 (0xb7380000)
    libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb7356000)
    libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb7340000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb733c000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7327000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb71c6000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb71ad000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7187000)
    libgcrypt.so.11 => /lib/i386-linux-gnu/libgcrypt.so.11 (0xb7112000)
    libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xb710d000)
    libntlm.so.0 => /usr/lib/libntlm.so.0 (0xb7105000)
    libgssapi_krb5.so.2 => /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2 (0xb70d5000)
    libkrb5.so.3 => /usr/lib/i386-linux-gnu/libkrb5.so.3 (0xb7027000)
    libk5crypto.so.3 => /usr/lib/i386-linux-gnu/libk5crypto.so.3 (0xb7002000)
    libcom_err.so.2 => /lib/i386-linux-gnu/libcom_err.so.2 (0xb6ffe000)
    /lib/ld-linux.so.2 (0xb7771000)
    libkrb5support.so.0 => /usr/lib/i386-linux-gnu/libkrb5support.so.0 (0xb6ff6000)
    libkeyutils.so.1 => /lib/i386-linux-gnu/libkeyutils.so.1 (0xb6ff2000)

Any idea what to make of all of this? I remain totally puzzled...

--
August


Sérgio Surkamp
April 28, 2011 3:05 PM

Hello,

It seems that the update broke some library (libcrypto?). If you have
compiled jabberd2 by your self, recompiling and reinstalling it should
solve the issue.

You can check the broken library by running:

ldd /usr/lib/jabberd2/authreg_mysql.so

Regards,
Sérgio

Em Thu, 28 Apr 2011 13:20:44 -0400





August
April 28, 2011 1:20 PM

Hi all,
    I've been running jabberd2 for some time on an Ubuntu box using crypted passwords. The only sort of non-standard configuration I have is that we're using mu-conference and MySQL with crypted passwords. However, with the latest update to Ubuntu today ("natty narwhal"), c2s is breaking when a client connects with:

jabberd2-c2s: symbol lookup error: /usr/lib/jabberd2/authreg_mysql.so: undefined symbol: crypt

No jabberd2 packages were upgraded or installed in the upgrade process, but he upgrade installed: [libmysqlclient-dev libmysqlclient16 mysql-client mysql-client-5.1 mysql-client-core-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1].

When I change password_type in my c2s config from <crypt/> to <plaintext/>, things work fine, but having plaintext passwords in the database isn't acceptable. I'm assuming that some library or dependency got borked unnoticed in the upgrade, but I can't seem to figure out what.

Reply via email to