On Fri Sep 25, 2020 at 10:07:24AM +0100, Raf Czlonka wrote: > Hi all, > > As soon as I authenticate against Google's XMPP server - talk.google.com > - profanity segfaults and dumps core: > > $ egdb profanity profanity.core > [...] > Core was generated by `profanity'. > Program terminated with signal SIGSEGV, Segmentation fault. > #0 0x00000e6f67fba14f in xmpp_conn_tlscert_fingerprint () from > /usr/local/lib/libmesode.so.0.0 > (gdb) bt > #0 0x00000e6f67fba14f in xmpp_conn_tlscert_fingerprint () from > /usr/local/lib/libmesode.so.0.0 > #1 0x00000e6cccde9466 in _xmppcert_to_profcert () > #2 0x00000e6cccde907e in ?? () > #3 0x00000e6f67fc6959 in verify_callback () from > /usr/local/lib/libmesode.so.0.0 > #4 0x00000e6f58058313 in check_id_error (ctx=0x7f7fffff6fd0, > errcode=<error reading variable: Cannot access memory at address 0x3e>) at > /usr/src/lib/libcrypto/x509/x509_vfy.c:183 > #5 check_id (ctx=0x7f7fffff6fd0) at > /usr/src/lib/libcrypto/x509/x509_vfy.c:213 > #6 0x00000e6f5801ec31 in x509_verify_cert_hostname (ctx=0xe6f1f627d80, > cert=0xe6fb3bc6d00, name=0x0) at /usr/src/lib/libcrypto/x509/x509_verify.c:462 > #7 x509_verify (ctx=0xe6f1f627d80, leaf=0xe6fb3bc6d00, name=0x0) at > /usr/src/lib/libcrypto/x509/x509_verify.c:870 > #8 0x00000e6f58058de1 in X509_verify_cert (ctx=0x7f7fffff6fd0) at > /usr/src/lib/libcrypto/x509/x509_vfy.c:682 > #9 0x00000e6f355991ed in ssl_verify_cert_chain (s=0xe6f4ca9c300, > sk=0xe6ee1db3840) at /usr/src/lib/libssl/ssl_cert.c:447 > #10 0x00000e6f355b79a5 in tls13_server_certificate_recv > (ctx=0xe6f4ca9c400, cbs=<optimized out>) at > /usr/src/lib/libssl/tls13_client.c:613 > #11 0x00000e6f355b777c in tls13_server_certificate_request_recv > (ctx=0xe6f4ca9c400, cbs=0x7f7fffff7218) at > /usr/src/lib/libssl/tls13_client.c:534 > #12 0x00000e6f355c6511 in tls13_handshake_recv_action > (ctx=0xe6f4ca9c400, action=<optimized out>) at > /usr/src/lib/libssl/tls13_handshake.c:500 > #13 tls13_handshake_perform (ctx=0xe6f4ca9c400) at > /usr/src/lib/libssl/tls13_handshake.c:375 > #14 0x00000e6f355c57d7 in tls13_legacy_connect (ssl=0xe6f4ca9c300) at > /usr/src/lib/libssl/tls13_legacy.c:442 > #15 0x00000e6f67fc6aa5 in tls_start () from > /usr/local/lib/libmesode.so.0.0 > #16 0x00000e6f67fb9542 in conn_tls_start () from > /usr/local/lib/libmesode.so.0.0 > #17 0x00000e6f67fb7274 in _handle_proceedtls_default () from > /usr/local/lib/libmesode.so.0.0 > #18 0x00000e6f67fbbb01 in handler_fire_stanza () from > /usr/local/lib/libmesode.so.0.0 > #19 0x00000e6f67fb8835 in _handle_stream_stanza () from > /usr/local/lib/libmesode.so.0.0 > #20 0x00000e6f67fc76f5 in _end_element () from > /usr/local/lib/libmesode.so.0.0 > #21 0x00000e6f48109821 in doContent (parser=0xe6ee1dbf800, > startTagLevel=<optimized out>, enc=<optimized out>, s=<optimized out>, > end=0xe6f1a4511ad '\337' <repeats 199 times>, <incomplete sequence \337>.. > haveMore=1 '\001') at /usr/src/lib/libexpat/lib/xmlparse.c:2600 > #22 0x00000e6f48106f07 in contentProcessor (parser=0xe6ee1dbf800, > start=0x7f7fffff60f0 "ERROR: error number 62", end=0x7 <error: Cannot access > memory at address 0x7>, endPtr=0x0) at /usr/src/lib/libexpat/ > #23 0x00000e6f48102191 in XML_ParseBuffer (parser=0xe6ee1dbf800, > len=50, isFinal=0) at /usr/src/lib/libexpat/lib/xmlparse.c:1704 > #24 0x00000e6f48101ca3 in XML_Parse (parser=0xe6ee1dbf800, > s=0x7f7fffff7620 "<proceed > xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>xml:ns:xmpp-tls\"><required/></starttls><mechanisms > > xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\"><mechanism>X-OAUTH2</mechanism><mec > len=50, isFinal=0) at /usr/src/lib/libexpat/lib/xmlparse.c:1668 > #25 0x00000e6f67fbb67e in xmpp_run_once () from > /usr/local/lib/libmesode.so.0.0 > #26 0x00000e6cccde8ada in connection_check_events () > #27 0x00000e6cccde1e3b in prof_run () > #28 0x00000e6ccce5d3de in main () > > This started happening a week or so ago. > > Around the same time - most likely the same snapshot - lastpass-cli > stopped working during authentication step, with an "SSL connect > error" message. > > Bjorn (bket@) found that lastpass-cli behaviour was related to a > change in lib/libcrypto/x509/x509_vpm.c (r1.22). This has been > subsequently fixed[0] by jsing@ and lastpass-cli works again. > > This may or may not be related but, given X.509 and TLS appearing > all over the place in the backtrace, I thought I'd mention it. > > FWIW, profanity does *not* segfault when I authenticate to an XMPP > server at work. > > [0] https://marc.info/?l=openbsd-cvs&m=160088523031157&w=2 > > Please CC me in any replies as I am not subscribed to this mailing list. > > Cheers, > > Raf >
Could you test your use-case with the following libmesode update, please? Upstream committed some "LibreSSL support" changes. ? libmesode-0.10.0-libmesode.so.0.0 Index: Makefile =================================================================== RCS file: /cvs/ports/net/libmesode/Makefile,v retrieving revision 1.4 diff -u -p -u -p -r1.4 Makefile --- Makefile 17 Oct 2019 20:25:03 -0000 1.4 +++ Makefile 3 Oct 2020 05:50:39 -0000 @@ -4,11 +4,11 @@ COMMENT = fork of libstrophe for use wit GH_ACCOUNT = boothj5 GH_PROJECT = libmesode -GH_TAGNAME = 0.9.3 +GH_TAGNAME = 0.10.0 CATEGORIES = net devel -SHARED_LIBS += mesode 0.0 # 0.0 +SHARED_LIBS += mesode 1.0 # 0.0 MAINTAINER = Rafael Sadowski <rsadow...@openbsd.org> Index: distinfo =================================================================== RCS file: /cvs/ports/net/libmesode/distinfo,v retrieving revision 1.2 diff -u -p -u -p -r1.2 distinfo --- distinfo 17 Oct 2019 20:25:03 -0000 1.2 +++ distinfo 3 Oct 2020 05:50:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (libmesode-0.9.3.tar.gz) = dG4GRqkXajA6B+yO18RDo4QWrMdD7Rnu3faonZcgn/0= -SIZE (libmesode-0.9.3.tar.gz) = 149584 +SHA256 (libmesode-0.10.0.tar.gz) = 3fUKqvd44DmwwAtp9A89USOEGOCbfGdMY4j+3KxIrfk= +SIZE (libmesode-0.10.0.tar.gz) = 150609 Index: patches/patch-configure_ac =================================================================== RCS file: patches/patch-configure_ac diff -N patches/patch-configure_ac --- patches/patch-configure_ac 3 Mar 2019 19:14:28 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,19 +0,0 @@ -$OpenBSD: patch-configure_ac,v 1.1.1.1 2019/03/03 19:14:28 rsadowski Exp $ - -Index: configure.ac ---- configure.ac.orig -+++ configure.ac -@@ -18,11 +18,11 @@ AS_CASE([$host_os], - [PLATFORM="nix"]) - - PKG_CHECK_MODULES([expat], [expat >= 2.0.0], -- [PC_REQUIRES+=(expat)], -+ [PC_REQUIRES="expat"], - [AC_CHECK_HEADER([expat.h], - [ - expat_LIBS="-lexpat" -- PC_LIBS+=($expat_LIBS) -+ PC_LIBS="${expat_LIBS}" - ], - [AC_MSG_ERROR([expat not found; expat required.])] - ) Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/net/libmesode/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -u -p -r1.1.1.1 PLIST --- pkg/PLIST 3 Mar 2019 19:14:28 -0000 1.1.1.1 +++ pkg/PLIST 3 Oct 2020 05:50:39 -0000 @@ -1,6 +1,6 @@ @comment $OpenBSD: PLIST,v 1.1.1.1 2019/03/03 19:14:28 rsadowski Exp $ include/mesode.h -lib/libmesode.a +@static-lib lib/libmesode.a lib/libmesode.la @lib lib/libmesode.so.${LIBmesode_VERSION} lib/pkgconfig/libmesode.pc