aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/core/stream_connect.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2021-04-07 23:39:02 +0200
committerfiaxh <git@lightrise.org>2021-04-07 23:43:32 +0200
commita91cada4fb652b58d162f69c087a6e1d62619ecc (patch)
treebb2480d625974c3be1a55782d201d54eb38f6f9d /xmpp-vala/src/core/stream_connect.vala
parent332c772fbefc1c27a5021e18a58f333b802bdaaf (diff)
downloaddino-a91cada4fb652b58d162f69c087a6e1d62619ecc.tar.gz
dino-a91cada4fb652b58d162f69c087a6e1d62619ecc.zip
Fix segfault on bad certificate with multiple xmpp records
Co-authored-by: Marvin W <git@larma.de>
Diffstat (limited to 'xmpp-vala/src/core/stream_connect.vala')
-rw-r--r--xmpp-vala/src/core/stream_connect.vala5
1 files changed, 3 insertions, 2 deletions
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<XmppStreamModule> 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<SrvTargetInfo>? targets = new GLib.List<SrvTargetInfo>();
@@ -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);