From a91cada4fb652b58d162f69c087a6e1d62619ecc Mon Sep 17 00:00:00 2001 From: fiaxh Date: Wed, 7 Apr 2021 23:39:02 +0200 Subject: Fix segfault on bad certificate with multiple xmpp records Co-authored-by: Marvin W --- xmpp-vala/src/core/stream_connect.vala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'xmpp-vala/src/core/stream_connect.vala') diff --git a/xmpp-vala/src/core/stream_connect.vala b/xmpp-vala/src/core/stream_connect.vala index b58563f7..833c5131 100644 --- a/xmpp-vala/src/core/stream_connect.vala +++ b/xmpp-vala/src/core/stream_connect.vala @@ -15,6 +15,7 @@ namespace Xmpp { public async XmppStreamResult establish_stream(Jid bare_jid, Gee.List modules, string? log_options, owned TlsXmppStream.OnInvalidCert on_invalid_cert) { Jid remote = bare_jid.domain_jid; + TlsXmppStream.OnInvalidCertWrapper on_invalid_cert_wrapper = new TlsXmppStream.OnInvalidCertWrapper(on_invalid_cert); //Lookup xmpp-client and xmpps-client SRV records GLib.List? targets = new GLib.List(); @@ -58,9 +59,9 @@ namespace Xmpp { foreach (SrvTargetInfo target in targets) { try { if (target.service == "xmpp-client") { - stream = new StartTlsXmppStream(remote, target.host, target.port, (owned)on_invalid_cert); + stream = new StartTlsXmppStream(remote, target.host, target.port, on_invalid_cert_wrapper); } else { - stream = new DirectTlsXmppStream(remote, target.host, target.port, (owned)on_invalid_cert); + stream = new DirectTlsXmppStream(remote, target.host, target.port, on_invalid_cert_wrapper); } stream.log = new XmppLog(bare_jid.to_string(), log_options); -- cgit v1.2.3-54-g00ecf