line72 / helplightning-libpurple

Help Lightning plugin for libpurple
GNU General Public License v3.0
0 stars 0 forks source link

Crash during failure of HELO #16

Open mdillavou opened 6 days ago

mdillavou commented 6 days ago

I have this backtrace:

Thread 1 "pidgin" received signal SIGPIPE, Broken pipe.
0x0000fffff6944d54 in __libc_send (fd=54, buf=0xaaaaabd6b430, len=31, flags=0)
    at ../sysdeps/unix/sysv/linux/send.c:28
28    return SYSCALL_CANCEL (sendto, fd, buf, len, flags, NULL, 0);

(gdb) bt
#0  0x0000fffff6944d54 in __libc_send (fd=54, buf=0xaaaaabd6b430, len=31, flags=0) at ../sysdeps/unix/sysv/linux/send.c:28
#1  __libc_send (fd=54, buf=buf@entry=0xaaaaabd6b430, len=len@entry=31, flags=flags@entry=0) at ../sysdeps/unix/sysv/linux/send.c:23
#2  0x0000ffffe53bd05c [PAC] in pt_Send (fd=0xaaaaab17f200, buf=0xaaaaabd6b430, amount=31, flags=0, timeout=4294967295) at ../../../../nspr/pr/src/pthreads/ptio.c:2002
#3  0x0000ffffe56ee3c0 [PAC] in ssl_DefSend (ss=ss@entry=0xaaaaabaa82b0, buf=0xaaaaabd6b430 "\025\003\003", len=31, flags=flags@entry=0) at ssldef.c:105
#4  0x0000ffffe56d6750 [PAC] in ssl3_SendRecord (ss=ss@entry=0xaaaaabaa82b0, cwSpec=cwSpec@entry=0x0, ct=ct@entry=ssl_ct_alert, pIn=0xffffffffbdd2 "\377\377\377\377", pIn@entry=0xffffffffbdd0 "\001", nIn=0, 
    nIn@entry=2, flags=flags@entry=0) at ssl3con.c:2605
#5  0x0000ffffe56d6d3c [PAC] in SSL3_SendAlert (ss=ss@entry=0xaaaaabaa82b0, level=level@entry=alert_warning, desc=desc@entry=close_notify) at ssl3con.c:2930
#6  0x0000ffffe56f3d9c [PAC] in ssl_SecureClose (ss=0xaaaaabaa82b0) at sslsecur.c:744
#7  0x0000ffffe5260e34 [PAC] in ssl_nss_close (gsc=0xaaaaabf1b670) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/libpurple/plugins/ssl/ssl-nss.c:512
#8  0x0000fffff735f55c [PAC] in purple_ssl_close (gsc=0xaaaaabf1b670) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/libpurple/sslconn.c:247
#9  0x0000ffffe60e2400 [PAC] in libballyhoo_do_helo (ba=0xaaaaabf1af80, gsc=0xaaaaabf1b670) at src/libballyhoo.c:260
#10 0x0000fffff7309218 in purple_certificate_verify_complete (vrq=0xaaaaab19fd30, st=PURPLE_CERTIFICATE_VALID) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/libpurple/certificate.c:167
#11 0x0000fffff730d88c [PAC] in x509_tls_cached_cert_in_cache (flags=PURPLE_CERTIFICATE_NO_PROBLEMS, vrq=0xaaaaab19fd30) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/libpurple/certificate.c:1580
#12 x509_tls_cached_start_verify (vrq=0xaaaaab19fd30) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/libpurple/certificate.c:1863
#13 0x0000ffffe52609b0 [PAC] in ssl_nss_handshake_cb (data=0xaaaaabf1b670, fd=<optimized out>, cond=<optimized out>) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/libpurple/plugins/ssl/ssl-nss.c:401
#14 0x0000aaaaaab1be38 [PAC] in pidgin_io_invoke (source=<optimized out>, condition=<optimized out>, data=<optimized out>) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/pidgin/gtkeventloop.c:73
#15 0x0000fffff6cd09b4 [PAC] in g_main_dispatch (context=0xaaaaaac04970) at ../glib/gmain.c:3344
#16 g_main_context_dispatch_unlocked (context=0xaaaaaac04970) at ../glib/gmain.c:4152
#17 0x0000fffff6d35744 [PAC] in g_main_context_iterate_unlocked.isra.0 (context=0xaaaaaac04970, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4217
#18 0x0000fffff6cd6dd0 [PAC] in g_main_loop_run (loop=0xaaaaab91f3d0) at ../glib/gmain.c:4419
#19 0x0000fffff795a9a0 [PAC] in IA__gtk_main () at /usr/src/debug/gtk2-2.24.33-18.fc40.aarch64/gtk/gtkmain.c:1270
#20 0x0000aaaaaaae78e8 [PAC] in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/pidgin-2.14.12-8.fc40.aarch64/pidgin/gtkmain.c:947

(gdb) thread
[Current thread is 1 (Thread 0xfffff7f83020 (LWP 9857))]

This is a bit strange, because it ends up crashing when calling purple_ssl_close with a valid object (gsc). I wonder if we are on an unexpected thread?