if (dbus_message_is_signal (message, "org.freedesktop.systemd1.Activator", "ActivationFailure"))
{
BusContext *context;
+ DBusConnection *systemd;
context = bus_connection_get_context (connection);
+ systemd = bus_driver_get_owner_of_name (connection,
+ "org.freedesktop.systemd1");
+
+ if (systemd != connection)
+ {
+ const char *attacker;
+
+ attacker = bus_connection_get_name (connection);
+ bus_context_log (context, DBUS_SYSTEM_LOG_SECURITY,
+ "Ignoring forged ActivationFailure message from "
+ "connection %s (%s)",
+ attacker ? attacker : "(unauthenticated)",
+ bus_connection_get_loginfo (connection));
+ /* ignore it */
+ return TRUE;
+ }
+
return dbus_activation_systemd_failure(bus_context_get_activation(context), message);
}