So I forwarded this bug upstream to the (new) irssi OTR guys: https://github.com/cryptodotis/irssi-otr/issues/32
Unfortunately, I am not sure they can help us. The backtraces I can produce all point to problems within the xmpp side, in libloudmouth or more precisely, in the gnutls layer. The funny thing is that I really thought this was a bug with irssi-plugin-xmpp, so much that I opened this other bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=707758 Also, I cannot reproduce all the steps that were given in this bug. For example, exhibit A: /load xmpp /xmppconnect -ssl [email protected] ABC123 /load otr /quit This works: I get the segfault I reported above. Exhibit B: /load otr /load xmpp /xmppconnect -ssl [email protected] ABC123 /unload otr This does *not* crash irssi, or at least not immediately! After a while, it does crash with the following backtrace - but only after a while, when a packet is received, I assume: Program terminated with signal 11, Segmentation fault. #0 0x00007fa1b80043a0 in ?? () #1 0x00007fa1b7d84cdb in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #2 0x00007fa1b7d859a9 in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #3 0x00007fa1b7d992aa in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #4 0x00007fa1b7d9999a in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #5 0x00007fa1b6d0177a in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #6 0x00007fa1b6c92219 in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #7 0x00007fa1b6c85c3d in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #8 0x00007fa1b6c86203 in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #9 0x00007fa1b6c83c31 in _gnutls_recv_int () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #10 0x00007fa1b736d0a7 in _lm_ssl_read (ssl=<optimized out>, buf=buf@entry=0x7fffcf752c20 "pC+\001", len=len@entry=1023, bytes_read=bytes_read@entry=0x7fffcf752c18) at lm-ssl-gnutls.c:256 #11 0x00007fa1b736e811 in socket_read_incoming (reason=<synthetic pointer>, hangup=<synthetic pointer>, bytes_read=0x7fffcf752c18, buf=0x7fffcf752c20 "pC+\001", socket=0x16c0ae0, buf_size=<optimized out>) at lm-socket.c:191 #12 socket_in_event (source=<optimized out>, condition=<optimized out>, socket=0x16c0ae0) at lm-socket.c:262 #13 0x00007fa1b9f0c355 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #14 0x00007fa1b9f0c688 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #15 0x00007fa1b9f0c744 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #16 0x000000000041905c in main () lm-socket.c is in libloudmouth. Exhibit C: /load xmpp /connect <xmpphost> /load otr /unload otr /quit Program terminated with signal 11, Segmentation fault. #0 0x00007fbe4a1643a0 in ?? () (gdb) bt #0 0x00007fbe4a1643a0 in ?? () #1 0x00007fbe4ce11cdb in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #2 0x00007fbe4ce129a9 in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #3 0x00007fbe4ce262aa in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #4 0x00007fbe4ce2699a in ?? () from /lib/x86_64-linux-gnu/libgcrypt.so.11 #5 0x00007fbe4d32f77a in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #6 0x00007fbe4d2c0219 in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #7 0x00007fbe4d2b34f1 in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #8 0x00007fbe4d2b3ae7 in ?? () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #9 0x00007fbe4d2b138d in _gnutls_send_int () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #10 0x00007fbe4d2b2795 in gnutls_record_send () from /usr/lib/x86_64-linux-gnu/libgnutls.so.26 #11 0x00007fbe4dbb1105 in _lm_ssl_send (ssl=0x20b0550, str=str@entry=0x240bcc0 "<presence type=\"unavailable\" id=\"340017359742\"> <status>leaving</status>\n</presence>\n", len=85) at lm-ssl-gnutls.c:287 #12 0x00007fbe4dbb29e4 in lm_socket_do_write (socket=0x20b29b0, buf=buf@entry=0x240bcc0 "<presence type=\"unavailable\" id=\"340017359742\"> <status>leaving</status>\n</presence>\n", len=len@entry=85) at lm-socket.c:156 #13 0x00007fbe4dbab83f in connection_send ( str=str@entry=0x240bcc0 "<presence type=\"unavailable\" id=\"340017359742\"> <status>leaving</status>\n</presence>\n", error=error@entry=0x0, connection=<error reading variable: Unhandled dwarf expression opcode 0xfa>, len=<optimized out>, connection=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at lm-connection.c:412 #14 0x00007fbe4dbac3ae in lm_connection_send (connection=0x20b56c0, message=<optimized out>, error=0x0) at lm-connection.c:1873 #15 0x00007fbe4ddcaee9 in send_stanza () from /usr/lib/irssi/modules/libxmpp_core.so #16 0x000000000048e0ba in ?? () #17 0x000000000048e56d in signal_emit () #18 0x00007fbe4ddc794e in sig_server_quit () from /usr/lib/irssi/modules/libxmpp_core.so #19 0x000000000048e0ba in ?? () #20 0x000000000048e56d in signal_emit () #21 0x0000000000490633 in ?? () #22 0x0000000000490c84 in ?? () #23 0x000000000048e0ba in ?? () #24 0x000000000048e56d in signal_emit () #25 0x000000000047a36e in ?? () #26 0x000000000048e0ba in ?? () #27 0x000000000048e56d in signal_emit () #28 0x000000000041c37b in ?? () #29 0x000000000048e0ba in ?? () #30 0x000000000048e56d in signal_emit () #31 0x000000000044e9e7 in ?? () #32 0x000000000048e0ba in ?? () #33 0x000000000048e56d in signal_emit () #34 0x000000000044f3b3 in key_pressed () #35 0x000000000041bc2e in ?? () #36 0x000000000048e0ba in ?? () #37 0x000000000048e56d in signal_emit () #38 0x000000000041d05e in ?? () #39 0x0000000000480f99 in ?? () #40 0x00007fbe4fac8355 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #41 0x00007fbe4fac8688 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #42 0x00007fbe4fac8744 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #43 0x000000000041905c in main () So there's clearly weird shit going on here... A. -- Five out of four people have a problem with fractions
pgpKCn2L8ub0_.pgp
Description: PGP signature

