From 5c3cb477ef3ccf469b4d89d775c4dfc25915d0ce Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Tue, 8 Mar 2011 18:59:14 +0900 Subject: [PATCH] Let PopContext return error if the current context is not owned by the client. --- src/server-server.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/server-server.c b/src/server-server.c index 69bad082..8b8171ae 100644 --- a/src/server-server.c +++ b/src/server-server.c @@ -367,6 +367,17 @@ handle_method_call (GDBusConnection *connection, if (server->context_stack) { ServerContext *context = server->context_stack->data; + if (g_strcmp0 (server_context_get_client_connection (context), + sender) != 0) { + g_dbus_method_invocation_return_error + (invocation, + G_IO_ERROR, + G_IO_ERROR_FAILED_HANDLED, + "the current context not owned by %s", + sender); + return; + } + server_context_set_enabled (context, FALSE); server->context_stack = g_slist_next (server->context_stack); g_object_unref (context);