dbus/bus services.c,1.34,1.35
John Palmieri
johnp at kemper.freedesktop.org
Fri Aug 18 08:47:03 PDT 2006
Update of /cvs/dbus/dbus/bus
In directory kemper:/tmp/cvs-serv1752/bus
Modified Files:
services.c
Log Message:
Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
* dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
Add two more global locks for use on windows platforms. These are
unused on non-windows platforms but are not ifdefed out to avoid
potential bugs (i.e. the few bytes lost does not warrent the extra
maintanence and complexity that having seperate sets of locks would
cause)
Index: services.c
===================================================================
RCS file: /cvs/dbus/dbus/bus/services.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- services.c 14 Aug 2006 19:11:35 -0000 1.34
+++ services.c 18 Aug 2006 15:46:59 -0000 1.35
@@ -417,6 +417,18 @@
goto out;
}
+ if (_dbus_string_equal_c_str (service_name, DBUS_SERVICE_DBUS))
+ {
+ dbus_set_error (error, DBUS_ERROR_INVALID_ARGS,
+ "Connection \"%s\" is not allowed to own the service \"%s\"because "
+ "it is reserved for D-Bus' use only",
+ bus_connection_is_active (connection) ?
+ bus_connection_get_name (connection) :
+ "(inactive)",
+ DBUS_SERVICE_DBUS);
+ goto out;
+ }
+
policy = bus_connection_get_policy (connection);
_dbus_assert (policy != NULL);
@@ -445,7 +457,7 @@
_dbus_string_get_const_data (service_name));
goto out;
}
-
+
if (!bus_client_policy_check_can_own (policy, connection,
service_name))
{
@@ -623,6 +635,19 @@
goto out;
}
+ if (_dbus_string_equal_c_str (service_name, DBUS_SERVICE_DBUS))
+ {
+ /* Not allowed; the base service name cannot be created or released */
+ dbus_set_error (error, DBUS_ERROR_INVALID_ARGS,
+ "Cannot release the %s service because it is owned by the bus",
+ DBUS_SERVICE_DBUS);
+
+ _dbus_verbose ("Attempt to release service name \"%s\"",
+ DBUS_SERVICE_DBUS);
+
+ goto out;
+ }
+
service = bus_registry_lookup (registry, service_name);
if (service == NULL)
More information about the dbus-commit
mailing list