mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-05 07:38:20 +02:00
bus: Don't pass systemd environment variables to activated services
Signed-off-by: Simon McVittie <smcv@collabora.com> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=104641 Reviewed-by: Philip Withnall <withnall@endlessm.com>
This commit is contained in:
parent
454ffd0d0e
commit
be46707673
1 changed files with 30 additions and 0 deletions
|
|
@ -848,6 +848,36 @@ populate_environment (BusActivation *activation)
|
|||
retval = _dbus_hash_table_from_array (activation->environment, environment, '=');
|
||||
dbus_free_string_array (environment);
|
||||
|
||||
/*
|
||||
* These environment variables are set by systemd for the dbus-daemon
|
||||
* itself, and are not applicable to our child processes.
|
||||
*
|
||||
* Of the other environment variables listed in systemd.exec(5):
|
||||
*
|
||||
* - XDG_RUNTIME_DIR, XDG_SESSION_ID, XDG_SEAT, XDG_VTNR: Properties of
|
||||
* the session and equally true for the activated service, should not
|
||||
* be reset
|
||||
* - PATH, LANG, USER, LOGNAME, HOME, SHELL, MANAGERPID: Equally true for
|
||||
* the activated service, should not be reset
|
||||
* - TERM, WATCHDOG_*: Should not be set for dbus-daemon, so not applicable
|
||||
* - MAINPID, SERVICE_RESULT, EXIT_CODE, EXIT_STATUS: Not set for ExecStart,
|
||||
* so not applicable
|
||||
* - INVOCATION_ID: TODO: Do we want to clear this or not? It isn't clear.
|
||||
*/
|
||||
|
||||
/* We give activated services their own Journal stream to avoid their
|
||||
* logging being attributed to dbus-daemon */
|
||||
_dbus_hash_table_remove_string (activation->environment, "JOURNAL_STREAM");
|
||||
|
||||
/* This is dbus-daemon's listening socket, not the activatable service's */
|
||||
_dbus_hash_table_remove_string (activation->environment, "LISTEN_FDNAMES");
|
||||
_dbus_hash_table_remove_string (activation->environment, "LISTEN_FDS");
|
||||
_dbus_hash_table_remove_string (activation->environment, "LISTEN_PID");
|
||||
|
||||
/* This is dbus-daemon's status notification, not the activatable service's
|
||||
* (and NotifyAccess wouldn't let it write here anyway) */
|
||||
_dbus_hash_table_remove_string (activation->environment, "NOTIFY_SOCKET");
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue