Summary: | empathy-auth-client SIGABRT in tls_certificate_got_all_cb(): cert_data != NULL | ||
---|---|---|---|
Product: | Telepathy | Reporter: | Sebastien Bacher <seb128> |
Component: | tp-glib | Assignee: | Telepathy bugs list <telepathy-bugs> |
Status: | RESOLVED FIXED | QA Contact: | Telepathy bugs list <telepathy-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | guillaume.desmottes |
Version: | unspecified | Keywords: | patch |
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | review+ | ||
i915 platform: | i915 features: |
Description
Sebastien Bacher
2013-02-28 12:53:44 UTC
The issue has been reported 7969 times since novembre on http://errors.ubuntu.com 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 (In reply to comment #2) > 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. Looks like dbus-glib crashes if we try to pass NULL as value so thay may not be the reason. (In reply to comment #2) > - tp-glib shouldn't assert in such case and instead invalidate the > certificate proxy Here is a fix for this one http://cgit.collabora.com/git/user/cassidy/telepathy-glib/log/?h=cert-61616 I would have been happy to wrote a test for it, but didn't find any way to tweak object_props in tp_tests_tls_certificate_class_init() without creating a whole new class. :\ Sure, let's have this. "Don't be remotely crashable" is among my D-Bus design principles. 0.20.3, 0.21.1. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.