diff options
author | fiaxh <git@lightrise.org> | 2021-04-07 23:39:02 +0200 |
---|---|---|
committer | fiaxh <git@lightrise.org> | 2021-04-07 23:43:32 +0200 |
commit | a91cada4fb652b58d162f69c087a6e1d62619ecc (patch) | |
tree | bb2480d625974c3be1a55782d201d54eb38f6f9d /xmpp-vala/src/core/starttls_xmpp_stream.vala | |
parent | 332c772fbefc1c27a5021e18a58f333b802bdaaf (diff) | |
download | dino-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/starttls_xmpp_stream.vala')
-rw-r--r-- | xmpp-vala/src/core/starttls_xmpp_stream.vala | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/xmpp-vala/src/core/starttls_xmpp_stream.vala b/xmpp-vala/src/core/starttls_xmpp_stream.vala index 1e4f7954..ed5fbdda 100644 --- a/xmpp-vala/src/core/starttls_xmpp_stream.vala +++ b/xmpp-vala/src/core/starttls_xmpp_stream.vala @@ -4,13 +4,13 @@ public class Xmpp.StartTlsXmppStream : TlsXmppStream { string host; uint16 port; - TlsXmppStream.OnInvalidCert on_invalid_cert_outer; + TlsXmppStream.OnInvalidCertWrapper on_invalid_cert; - public StartTlsXmppStream(Jid remote, string host, uint16 port, owned TlsXmppStream.OnInvalidCert on_invalid_cert) { + public StartTlsXmppStream(Jid remote, string host, uint16 port, TlsXmppStream.OnInvalidCertWrapper on_invalid_cert) { base(remote); this.host = host; this.port = port; - this.on_invalid_cert_outer = (owned)on_invalid_cert; + this.on_invalid_cert = on_invalid_cert; } public override async void connect() throws IOStreamError { @@ -42,7 +42,7 @@ public class Xmpp.StartTlsXmppStream : TlsXmppStream { reset_stream(conn); conn.accept_certificate.connect(on_invalid_certificate); - conn.accept_certificate.connect((cert, flags) => on_invalid_cert_outer(cert, flags)); + conn.accept_certificate.connect((cert, flags) => on_invalid_cert.func(cert, flags)); } catch (Error e) { stderr.printf("Failed to start TLS: %s\n", e.message); } |