summaryrefslogtreecommitdiff
path: root/server/dbus/sssd_dbus_server.c
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2008-10-28 09:10:01 -0400
committerSimo Sorce <idra@samba.org>2008-11-03 10:12:29 -0500
commit0d3fad824641eabd2e856f7b4aa7828367bba5fa (patch)
tree78ac333a9e9a5d38962d34a79ea695f1fc17171f /server/dbus/sssd_dbus_server.c
parentf95d98094c3872199eaed59da48a76c44d0e0531 (diff)
downloadsssd-0d3fad824641eabd2e856f7b4aa7828367bba5fa.tar.gz
sssd-0d3fad824641eabd2e856f7b4aa7828367bba5fa.tar.bz2
sssd-0d3fad824641eabd2e856f7b4aa7828367bba5fa.zip
Fixed segfault issue when remote connection is lost.
Diffstat (limited to 'server/dbus/sssd_dbus_server.c')
-rw-r--r--server/dbus/sssd_dbus_server.c10
1 files changed, 10 insertions, 0 deletions
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);