dbus: fix dbus_connection_changed_cb() definition to take DBusConnection

dbus_connection_changed_cb() is called by DBUS_CONNECTION_CHANGED signal
that emits DBusConnection, not DBusGConnection.

The code was introduced by bd636ffb4068a75b204d99e798b5714f1bd5f24b; see it
for more information.

Reproducer: restart D-Bus daemon

 (gdb) bt
 #0  0xb7d40837 in pthread_mutex_lock () from /lib/libpthread.so.0
 #1  0xb7cf946c in _dbus_platform_rmutex_lock () from /lib/libdbus-1.so.3
 #2  0xb7ceba78 in _dbus_rmutex_lock () from /lib/libdbus-1.so.3
 #3  0xb7cd5f2e in dbus_connection_add_filter () from /lib/libdbus-1.so.3
 #4  0x080c40b5 in dbus_connection_changed_cb (dbus_mgr=0x8161b28, connection=0x81badc0, user_data=0x8189010)
     at nm-manager.c:4499
 #5  0xb7a6bfaa in g_cclosure_marshal_VOID__POINTER () from /lib/libgobject-2.0.so.0
 #6  0xb7a69007 in g_closure_invoke () from /lib/libgobject-2.0.so.0
 #7  0xb7a7afad in signal_emit_unlocked_R () from /lib/libgobject-2.0.so.0
 #8  0xb7a83261 in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
 #9  0xb7a833e4 in g_signal_emit () from /lib/libgobject-2.0.so.0
 #10 0x080b4136 in nm_dbus_manager_reconnect (user_data=0x8161b28) at nm-dbus-manager.c:568
 #11 0xb7969e50 in g_timeout_dispatch () from /lib/libglib-2.0.so.0
 #12 0xb796915b in g_main_context_dispatch () from /lib/libglib-2.0.so.0
 #13 0xb7969500 in g_main_context_iterate.isra.22 () from /lib/libglib-2.0.so.0
 #14 0xb7969963 in g_main_loop_run () from /lib/libglib-2.0.so.0
 #15 0x08065e67 in main (argc=1, argv=0xbffff814) at main.c:629
This commit is contained in:
Jiří Klimeš 2013-06-27 12:46:33 +02:00
parent 500fb12c28
commit 941ab71279

View file

@ -4482,16 +4482,12 @@ periodic_update_active_connection_timestamps (gpointer user_data)
static void
dbus_connection_changed_cb (NMDBusManager *dbus_mgr,
DBusGConnection *connection,
DBusConnection *dbus_connection,
gpointer user_data)
{
NMManager *self = NM_MANAGER (user_data);
DBusConnection *dbus_connection;
if (connection) {
dbus_connection = dbus_g_connection_get_connection (connection);
g_assert (dbus_connection);
if (dbus_connection) {
/* Register property filter on new connection; there's no reason this
* should fail except out-of-memory or program error; if it does fail
* then there's no Manager property access control, which is bad.