From 0d3fad824641eabd2e856f7b4aa7828367bba5fa Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 28 Oct 2008 09:10:01 -0400 Subject: Fixed segfault issue when remote connection is lost. --- server/dbus/sssd_dbus_server.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'server/dbus/sssd_dbus_server.c') diff --git a/server/dbus/sssd_dbus_server.c b/server/dbus/sssd_dbus_server.c index 6ad8e0dd..c6bc7db9 100644 --- a/server/dbus/sssd_dbus_server.c +++ b/server/dbus/sssd_dbus_server.c @@ -252,10 +252,20 @@ static void new_connection_callback(DBusServer *server, DBusConnection *conn, { struct dbus_server_toplevel_context *dst_ctx; DBusObjectPathVTable *monitor_vtable; + int *connection_type; int ret; dst_ctx = talloc_get_type(data,struct dbus_server_toplevel_context); + if (!dbus_connection_allocate_data_slot(&connection_type_slot)) { + dbus_connection_close(conn); + return; + } + + connection_type = talloc(dst_ctx, int); + *connection_type = DBUS_CONNECTION_TYPE_PRIVATE; + dbus_connection_set_data(conn, connection_type_slot, connection_type, talloc_free); + ret = sssd_add_dbus_connection(dst_ctx->sd_ctx, conn); if (ret != 0) { dbus_connection_close(conn); -- cgit