Commit 60e619b8 authored by Benjamin Berg's avatar Benjamin Berg

autostart-app: Strip blacklisted variables from autostart environment

So far the blacklisted variables were not actively striped from the
environment of XDG autostart applications. Update the code to explicitly
unset the variables, preventing e.g. NOTIFY_SOCKET to be leaked to
children.

Fixes: #36
parent 132b423f
......@@ -997,6 +997,7 @@ autostart_app_start_spawn (GsmAutostartApp *app,
gboolean success;
GError *local_error;
const char *startup_id;
const char * const *variable_blacklist;
const char * const *child_environment;
int i;
GAppLaunchContext *ctx;
......@@ -1013,6 +1014,10 @@ autostart_app_start_spawn (GsmAutostartApp *app,
local_error = NULL;
ctx = g_app_launch_context_new ();
variable_blacklist = gsm_util_get_variable_blacklist ();
for (i = 0; variable_blacklist[i] != NULL; i++)
g_app_launch_context_unsetenv (ctx, variable_blacklist[i]);
child_environment = gsm_util_listenv ();
for (i = 0; child_environment[i] != NULL; i++) {
char **environment_tuple;
......
......@@ -808,3 +808,9 @@ gsm_util_listenv (void)
return (const char * const *) child_environment;
}
const char * const *
gsm_util_get_variable_blacklist (void)
{
return variable_blacklist;
}
......@@ -50,6 +50,7 @@ char * gsm_util_generate_startup_id (void);
void gsm_util_setenv (const char *variable,
const char *value);
const char * const * gsm_util_listenv (void);
const char * const * gsm_util_get_variable_blacklist(void);
gboolean gsm_util_export_activation_environment (GError **error);
#ifdef HAVE_SYSTEMD
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment