Comment 13 for bug 1064786

Revision history for this message
In , Guillaume-desmottes (guillaume-desmottes) wrote :

Looks like TpTLSCertificate tries to inspect a Authentication.TLSCertificate object which either doesn't implement the CertificateChainData property or has a bad value for it so tp_asv_get_boxed() fails and return NULL.

AFAIK, Gabble is the only CM implementing TLSCertificate and the property is always implemented so I'm going to assume we are in the second scenario here.

Gabble uses the result of wocky_tls_session_get_peers_certificate() as value for the CertificateChainData, so if this function returns NULL I guess this may fail.

And actually, this function MAY return NULL, if, depending on the backend,:
 - gnutls_certificate_get_peers() returns NULL
 - SSL_get_peer_cert_chain() reutrns NULL

(Ubuntu's Wocky is built with gnutls).

So I think we may have 2 bugs here:
 - Gabble should deal with wocky_tls_session_get_peers_certificate() returning NULL. By invalidating the Certificate channel?
 - tp-glib shouldn't assert in such case and instead invalidate the certificate proxy