Comment 8 for bug 925829

Revision history for this message
Charles Kerr (charlesk) wrote :

Okay, it's definintely crashing in libindicate. The process is in libindicate/server.c's bus_connection_cb() callback func and calls g_bus_get_finish() to complete making the connection. g_bus_get_finish() returns an error, which bus_connection_cb() tries to log. The crash takes place while logging the error, making me think the error message is corrupt.

The code:

    static void
    bus_connection_cb (GObject * obj, GAsyncResult * res, gpointer user_data)
    {
            GError * error = NULL;

            GDBusConnection * connection = g_bus_get_finish(res, &error);
            if (error != NULL) {
                    g_error("Unable to get session bus: %s", error->message);
                    g_error_free(error);
                    return;
            }

And the relevant parts of the ThreadStacktrace:

#0 g_logv (log_domain=0x7f6e5e523432 "libindicate", log_level=<optimized out>, format=0x7f6e5e5237c6 "Unable to get session bus: %s", args1=0x7fff70a89ac8) at /build/buildd/glib2.0-2.31.14/./glib/gmessages.c:765
        domain = 0x0
        data = <optimized out>
        depth = 0
        log_func = <optimized out>
        domain_fatal_mask = <optimized out>
        masquerade_fatal = <optimized out>
        test_level = <optimized out>
        was_fatal = 0
        was_recursion = 0
        i = <optimized out>
#1 0x00007f6e5d47f062 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at /build/buildd/glib2.0-2.31.14/./glib/gmessages.c:792
        args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff70a89ba0, reg_save_area = 0x7fff70a89ae0}}
#2 0x00007f6e5e51dd6c in bus_connection_cb (obj=<optimized out>, res=<optimized out>, user_data=0x161e820) at /build/buildd/libindicate-0.6.1/./libindicate/server.c:694
        error = 0x16288b0
        connection = 0x0
        server = <optimized out>
        priv = <optimized out>