im.pidgin.pidgin: f6430c7013d08f95c60248eeb22c752a0107499b

Stu Tomlinson stu at nosnilmot.com
Thu Dec 27 21:51:52 EST 2007


On Sat, 2007-12-22 at 12:05 -0500, evands at pidgin.im wrote:
> -----------------------------------------------------------------
> Revision: f6430c7013d08f95c60248eeb22c752a0107499b
> Ancestor: 16e6cd4ffd8a8308380dc016f0afa782a7750374
> Author: evands at pidgin.im
> Date: 2007-12-22T16:59:52
> Branch: im.pidgin.pidgin
> 
> Modified files:
>         libpurple/protocols/jabber/auth.c
> 
> ChangeLog: 
> 
> The DIGEST-MD5 implementation of CYRUS-SASL is incompatible with the
> implementation in Java.  The result is that we failed to authenticate
> to Java-based servers such as OpenFire when DIGEST-MD5 was enabled.
> This appears to be the result of a bug in the Java SASL library.
> While we -could- wait for a fix within that library and tell our users
> that server admins need to upgrade to get the fix, a client-side
> workaround is very easily accessible to us.
> 
> Our own implementation (used when compiled with SASL support) works
> fine.  We therefore will make use of it when SASL chooses DIGEST-MD5
> as the best auth mechanism.
> 
> Fixes #2095. Fixes #2186. 
> Also fixes http://trac.adiumx.com/ticket/8135.

I disapproved this commit. I do not like workarounds like this, and I
don't think it's even necessary for the latest versions of OpenFire
(tested with 3.4.1). Also, instead of forcing non-SASL DIGEST-MD5 on
everyone we should possibly make it an option. Finally, this commit was
causing crashes for me:

(gdb) bt full
#0  0x00110402 in __kernel_vsyscall ()
No symbol table info available.
#1  0x00515fa0 in raise () from /lib/libc.so.6
No symbol table info available.
#2  0x005178b1 in abort () from /lib/libc.so.6
No symbol table info available.
#3  0x080c2012 in sighandler (sig=11) at gtkmain.c:220
No locals.
#4  <signal handler called>
No symbol table info available.
#5  0x01eba1b1 in jabber_auth_handle_success (js=0x9ce67b8, packet=0x9ce8b40) at auth.c:1099
        ns = 0x9beec38 "urn:ietf:params:xml:ns:xmpp-sasl"
        x = (const void *) 0x7b32
#6  0x01ec76c1 in jabber_process_packet (js=0x9ce67b8, packet=0xbf8d513c) at jabber.c:225
        xmlns = 0x9beec38 "urn:ietf:params:xml:ns:xmpp-sasl"
#7  0x01ed31e3 in jabber_parser_element_end_libxml (user_data=0x9ce67b8, element_name=0x9cee946 "success", prefix=0x0, namespace=0x9cee8b2 "urn:ietf:params:xml:ns:xmpp-sasl") at parser.c:116
        packet = (xmlnode *) 0x9ce8b40
        js = (JabberStream *) 0x9ce67b8
#8  0x0478dd47 in ?? () from /usr/lib/libxml2.so.2
No symbol table info available.
#9  0x0479a607 in xmlParseChunk () from /usr/lib/libxml2.so.2
No symbol table info available.
#10 0x01ed3366 in jabber_parser_process (js=0x9ce67b8, buf=0x1ee5e20 "<success xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\">cnNwYXV0aD1lMGY4ODE2MTQ5MTUzNDdkNWVkNjgzNjMyOGI5NDcxMQ==</success>", len=116) at parser.c:195
No locals.
#11 0x01ec7fa5 in jabber_recv_cb_ssl (data=0x9ce4b48, gsc=0x9d0d068, cond=PURPLE_INPUT_READ) at jabber.c:434
        gc = (PurpleConnection *) 0x9ce4b48
        js = (JabberStream *) 0x9ce67b8
        len = 116
        buf = "<success xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\">blahblahblahblahblah==</success>\000UFMU21EdUJkN200NFJ5amhpV2RYR1czTE8iLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09"...
#12 0x0018a816 in recv_cb (data=0x9d0d068, source=30, cond=PURPLE_INPUT_READ) at sslconn.c:143
        gsc = (PurpleSslConnection *) 0x9d0d068
#13 0x080a7b07 in pidgin_io_invoke (source=0x9d1de08, condition=G_IO_IN, data=0x994c2c0) at gtkeventloop.c:78
        closure = (PidginIOClosure *) 0x994c2c0
        purple_cond = PURPLE_INPUT_READ
#14 0x00809ecd in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#15 0x007e07f2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
No symbol table info available.
#16 0x007e37cf in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#17 0x007e3b79 in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
#18 0x06019f44 in IA__gtk_main () at gtkmain.c:1154
        tmp_list = (GList *) 0x0
        functions = (GList *) 0x0
        init = (GtkInitFunction *) 0x4e9ca0
        loop = (GMainLoop *) 0x9ce9400

Regards,


Stu.




More information about the Devel mailing list