[Bug 1064786] Re: empathy-auth-client SIGABRT in tls_certificate_got_all_cb(): cert_data != NULL

Bug Watch Updater 1064786 at bugs.launchpad.net
Tue Mar 12 10:38:41 UTC 2013


Launchpad has imported 5 comments from the remote bug at
https://bugs.freedesktop.org/show_bug.cgi?id=61616.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2013-02-28T12:53:44+00:00 Sebastien Bacher wrote:

the bug has been reported on
https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/1064786

Stracktrace on https://launchpadlibrarian.net/119303231/Stacktrace.txt

"#0  0x00007feed9c3b425 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        resultvar = 0
        pid = <optimized out>
        selftid = 2840
#1  0x00007feed9c3eb8b in __GI_abort () at abort.c:91
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0xb00000800, sa_sigaction = 0xb00000800}, sa_mask = {__val = {36721360, 140663832230984, 140663871654352, 140663590041824, 101, 140734715490472, 140663587941569, 4294967295, 125, 125, 38576336, 3100784, 0, 38934064, 38978672, 140663838347264}}, sa_flags = -604313724, sa_restorer = 0x5}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007feeda24ab87 in g_assertion_message (domain=domain at entry=0x7feedb53450b "tp-glib", file=file at entry=0x7feedb571985 "tls-certificate.c", line=line at entry=253, func=func at entry=0x7feedb571f30 "tls_certificate_got_all_cb", message=<optimized out>) at /build/buildd/glib2.0-2.34.0/./glib/gtestutils.c:1877
        lstr = "253\000\377\177\000\000 at q\271Z\377\177\000\000\001\000\000\000\000\000\000\000\362\031W\333\356\177\000"
        s = 0x24ca0d0 ""
#3  0x00007feeda24b0a4 in g_assertion_message_expr (domain=domain at entry=0x7feedb53450b "tp-glib", file=file at entry=0x7feedb571985 "tls-certificate.c", line=line at entry=253, func=func at entry=0x7feedb571f30 "tls_certificate_got_all_cb", expr=expr at entry=0x7feedb5719f2 "cert_data != NULL") at /build/buildd/glib2.0-2.34.0/./glib/gtestutils.c:1888
        s = <optimized out>
#4  0x00007feedb5147f6 in tls_certificate_got_all_cb (proxy=proxy at entry=0x23d70d0, properties=<optimized out>, error=error at entry=0x0, user_data=<optimized out>, weak_object=<optimized out>) at tls-certificate.c:253
        cert_data = 0x0
        self = <optimized out>
        state = 0
        i = <optimized out>
        __PRETTY_FUNCTION__ = "tls_certificate_got_all_cb"
#5  0x00007feedb500603 in _tp_cli_dbus_properties_invoke_callback_get_all (weak_object=<optimized out>, user_data=<optimized out>, generic_callback=0x7feedb5145e0 <tls_certificate_got_all_cb>, args=0x2529740, error=0x0, self=0x23d70d0) at _gen/tp-cli-generic-body.h:1210
No locals.
#6  _tp_cli_dbus_properties_invoke_callback_get_all (self=0x23d70d0, error=0x0, args=0x2529740, generic_callback=0x7feedb5145e0 <tls_certificate_got_all_cb>, user_data=<optimized out>, weak_object=<optimized out>) at _gen/tp-cli-generic-body.h:1193
        callback = 0x7feedb5145e0 <tls_certificate_got_all_cb>
#7  0x00007feedb5067d0 in tp_proxy_pending_call_idle_invoke (p=0x250f700) at proxy-methods.c:155
        pc = 0x250f700
        invoke = <optimized out>
        __PRETTY_FUNCTION__ = "tp_proxy_pending_call_idle_invoke"
#8  0x00007feeda228ab5 in g_main_dispatch (context=0x2381970) at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:2715
        dispatch = 0x7feeda225e60 <g_idle_dispatch>
        was_in_call = 0
        user_data = 0x250f700
        callback = 0x7feedb506760 <tp_proxy_pending_call_idle_invoke>
        cb_funcs = 0x7feeda4d69e0
        cb_data = 0x2521630
        current_source_link = {data = 0x252c470, next = 0x0}
        need_destroy = <optimized out>
        source = 0x252c470
        current = 0x23d2d50
        i = <optimized out>
#9  g_main_context_dispatch (context=context at entry=0x2381970) at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:3219
No locals."

Reply at:
https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/1064786/comments/9

------------------------------------------------------------------------
On 2013-02-28T12:59:47+00:00 Sebastien Bacher wrote:

The issue has been reported 7969 times since novembre on
http://errors.ubuntu.com

Reply at:
https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/1064786/comments/10

------------------------------------------------------------------------
On 2013-03-12T09:33:25+00:00 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

Reply at:
https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/1064786/comments/13

------------------------------------------------------------------------
On 2013-03-12T10:03:52+00:00 Guillaume-desmottes wrote:

(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.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/1064786/comments/14

------------------------------------------------------------------------
On 2013-03-12T10:15:51+00:00 Guillaume-desmottes wrote:

(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. :\

Reply at:
https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/1064786/comments/15


** Changed in: empathy
       Status: Unknown => Confirmed

** Changed in: empathy
   Importance: Unknown => Medium

-- 
You received this bug notification because you are a member of
Telepathy, which is subscribed to empathy in Ubuntu.
https://bugs.launchpad.net/bugs/1064786

Title:
  empathy-auth-client  SIGABRT in tls_certificate_got_all_cb():
  cert_data != NULL

To manage notifications about this bug go to:
https://bugs.launchpad.net/empathy/+bug/1064786/+subscriptions




More information about the Ubuntu-telepathy mailing list