summaryrefslogtreecommitdiff
path: root/common/xdg-app-run.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/xdg-app-run.c')
-rw-r--r--common/xdg-app-run.c666
1 files changed, 355 insertions, 311 deletions
diff --git a/common/xdg-app-run.c b/common/xdg-app-run.c
index 38c4126..44d5a14 100644
--- a/common/xdg-app-run.c
+++ b/common/xdg-app-run.c
@@ -98,18 +98,19 @@ static const char *xdg_app_context_devices[] = {
NULL
};
-struct XdgAppContext {
- XdgAppContextShares shares;
- XdgAppContextShares shares_valid;
+struct XdgAppContext
+{
+ XdgAppContextShares shares;
+ XdgAppContextShares shares_valid;
XdgAppContextSockets sockets;
XdgAppContextSockets sockets_valid;
XdgAppContextDevices devices;
XdgAppContextDevices devices_valid;
- GHashTable *env_vars;
- GHashTable *persistent;
- GHashTable *filesystems;
- GHashTable *session_bus_policy;
- GHashTable *system_bus_policy;
+ GHashTable *env_vars;
+ GHashTable *persistent;
+ GHashTable *filesystems;
+ GHashTable *session_bus_policy;
+ GHashTable *system_bus_policy;
};
XdgAppContext *
@@ -174,7 +175,7 @@ xdg_app_context_bitmask_to_string (guint32 enabled, guint32 valid, const char **
}
g_ptr_array_add (array, NULL);
- return (char **)g_ptr_array_free (array, FALSE);
+ return (char **) g_ptr_array_free (array, FALSE);
}
static XdgAppContextShares
@@ -236,7 +237,9 @@ xdg_app_verify_dbus_name (const char *name, GError **error)
name_part = tmp;
}
else
- name_part = name;
+ {
+ name_part = name;
+ }
if (g_dbus_is_name (name_part) && !g_dbus_is_unique_name (name_part))
return TRUE;
@@ -280,86 +283,86 @@ xdg_app_context_devices_to_string (XdgAppContextDevices devices, XdgAppContextDe
}
static void
-xdg_app_context_add_shares (XdgAppContext *context,
- XdgAppContextShares shares)
+xdg_app_context_add_shares (XdgAppContext *context,
+ XdgAppContextShares shares)
{
context->shares_valid |= shares;
context->shares |= shares;
}
static void
-xdg_app_context_remove_shares (XdgAppContext *context,
- XdgAppContextShares shares)
+xdg_app_context_remove_shares (XdgAppContext *context,
+ XdgAppContextShares shares)
{
context->shares_valid |= shares;
context->shares &= ~shares;
}
static void
-xdg_app_context_add_sockets (XdgAppContext *context,
- XdgAppContextSockets sockets)
+xdg_app_context_add_sockets (XdgAppContext *context,
+ XdgAppContextSockets sockets)
{
context->sockets_valid |= sockets;
context->sockets |= sockets;
}
static void
-xdg_app_context_remove_sockets (XdgAppContext *context,
- XdgAppContextSockets sockets)
+xdg_app_context_remove_sockets (XdgAppContext *context,
+ XdgAppContextSockets sockets)
{
context->sockets_valid |= sockets;
context->sockets &= ~sockets;
}
static void
-xdg_app_context_add_devices (XdgAppContext *context,
- XdgAppContextDevices devices)
+xdg_app_context_add_devices (XdgAppContext *context,
+ XdgAppContextDevices devices)
{
context->devices_valid |= devices;
context->devices |= devices;
}
static void
-xdg_app_context_remove_devices (XdgAppContext *context,
- XdgAppContextDevices devices)
+xdg_app_context_remove_devices (XdgAppContext *context,
+ XdgAppContextDevices devices)
{
context->devices_valid |= devices;
context->devices &= ~devices;
}
static void
-xdg_app_context_set_env_var (XdgAppContext *context,
- const char *name,
- const char *value)
+xdg_app_context_set_env_var (XdgAppContext *context,
+ const char *name,
+ const char *value)
{
g_hash_table_insert (context->env_vars, g_strdup (name), g_strdup (value));
}
void
-xdg_app_context_set_session_bus_policy (XdgAppContext *context,
- const char *name,
- XdgAppPolicy policy)
+xdg_app_context_set_session_bus_policy (XdgAppContext *context,
+ const char *name,
+ XdgAppPolicy policy)
{
g_hash_table_insert (context->session_bus_policy, g_strdup (name), GINT_TO_POINTER (policy));
}
void
-xdg_app_context_set_system_bus_policy (XdgAppContext *context,
- const char *name,
- XdgAppPolicy policy)
+xdg_app_context_set_system_bus_policy (XdgAppContext *context,
+ const char *name,
+ XdgAppPolicy policy)
{
g_hash_table_insert (context->system_bus_policy, g_strdup (name), GINT_TO_POINTER (policy));
}
static void
-xdg_app_context_set_persistent (XdgAppContext *context,
- const char *path)
+xdg_app_context_set_persistent (XdgAppContext *context,
+ const char *path)
{
g_hash_table_insert (context->persistent, g_strdup (path), GINT_TO_POINTER (1));
}
static gboolean
-get_user_dir_from_string (const char *filesystem,
+get_user_dir_from_string (const char *filesystem,
const char **config_key,
const char **suffix,
const char **dir)
@@ -378,7 +381,7 @@ get_user_dir_from_string (const char *filesystem,
rest = filesystem + len;
while (*rest == '/')
- rest ++;
+ rest++;
if (suffix)
*suffix = rest;
@@ -489,7 +492,7 @@ parse_filesystem_flags (const char *filesystem, XdgAppFilesystemMode *mode)
static gboolean
xdg_app_context_verify_filesystem (const char *filesystem_and_mode,
- GError **error)
+ GError **error)
{
g_autofree char *filesystem = parse_filesystem_flags (filesystem_and_mode, NULL);
@@ -510,8 +513,8 @@ xdg_app_context_verify_filesystem (const char *filesystem_and_mode,
}
static void
-xdg_app_context_add_filesystem (XdgAppContext *context,
- const char *what)
+xdg_app_context_add_filesystem (XdgAppContext *context,
+ const char *what)
{
XdgAppFilesystemMode mode;
char *fs = parse_filesystem_flags (what, &mode);
@@ -520,8 +523,8 @@ xdg_app_context_add_filesystem (XdgAppContext *context,
}
static void
-xdg_app_context_remove_filesystem (XdgAppContext *context,
- const char *what)
+xdg_app_context_remove_filesystem (XdgAppContext *context,
+ const char *what)
{
g_hash_table_insert (context->filesystems,
parse_filesystem_flags (what, NULL),
@@ -529,8 +532,8 @@ xdg_app_context_remove_filesystem (XdgAppContext *context,
}
void
-xdg_app_context_merge (XdgAppContext *context,
- XdgAppContext *other)
+xdg_app_context_merge (XdgAppContext *context,
+ XdgAppContext *other)
{
GHashTableIter iter;
gpointer key, value;
@@ -567,10 +570,10 @@ xdg_app_context_merge (XdgAppContext *context,
}
static gboolean
-option_share_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_share_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
XdgAppContextShares share;
@@ -585,10 +588,10 @@ option_share_cb (const gchar *option_name,
}
static gboolean
-option_unshare_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_unshare_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
XdgAppContextShares share;
@@ -603,10 +606,10 @@ option_unshare_cb (const gchar *option_name,
}
static gboolean
-option_socket_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_socket_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
XdgAppContextSockets socket;
@@ -621,10 +624,10 @@ option_socket_cb (const gchar *option_name,
}
static gboolean
-option_nosocket_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_nosocket_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
XdgAppContextSockets socket;
@@ -639,10 +642,10 @@ option_nosocket_cb (const gchar *option_name,
}
static gboolean
-option_device_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_device_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
XdgAppContextDevices device;
@@ -657,10 +660,10 @@ option_device_cb (const gchar *option_name,
}
static gboolean
-option_nodevice_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_nodevice_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
XdgAppContextDevices device;
@@ -675,10 +678,10 @@ option_nodevice_cb (const gchar *option_name,
}
static gboolean
-option_filesystem_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_filesystem_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
@@ -690,10 +693,10 @@ option_filesystem_cb (const gchar *option_name,
}
static gboolean
-option_nofilesystem_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_nofilesystem_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
@@ -705,12 +708,13 @@ option_nofilesystem_cb (const gchar *option_name,
}
static gboolean
-option_env_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_env_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
+
g_auto(GStrv) split = g_strsplit (value, "=", 2);
if (split == NULL || split[0] == NULL || split[0][0] == 0 || split[1] == NULL)
@@ -724,10 +728,10 @@ option_env_cb (const gchar *option_name,
}
static gboolean
-option_own_name_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_own_name_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
@@ -739,10 +743,10 @@ option_own_name_cb (const gchar *option_name,
}
static gboolean
-option_talk_name_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_talk_name_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
@@ -754,10 +758,10 @@ option_talk_name_cb (const gchar *option_name,
}
static gboolean
-option_system_own_name_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_system_own_name_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
@@ -769,10 +773,10 @@ option_system_own_name_cb (const gchar *option_name,
}
static gboolean
-option_system_talk_name_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_system_talk_name_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
@@ -784,10 +788,10 @@ option_system_talk_name_cb (const gchar *option_name,
}
static gboolean
-option_persist_cb (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
+option_persist_cb (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error)
{
XdgAppContext *context = data;
@@ -814,9 +818,9 @@ static GOptionEntry context_options[] = {
};
GOptionGroup *
-xdg_app_context_get_options (XdgAppContext *context)
+xdg_app_context_get_options (XdgAppContext *context)
{
- GOptionGroup *group;
+ GOptionGroup *group;
group = g_option_group_new ("environment",
"Runtime Environment",
@@ -838,15 +842,17 @@ parse_negated (const char *option, gboolean *negated)
*negated = TRUE;
}
else
- *negated = FALSE;
+ {
+ *negated = FALSE;
+ }
return option;
}
/* This is a merge, not a replace */
gboolean
-xdg_app_context_load_metadata (XdgAppContext *context,
- GKeyFile *metakey,
- GError **error)
+xdg_app_context_load_metadata (XdgAppContext *context,
+ GKeyFile *metakey,
+ GError **error)
{
gboolean remove;
int i;
@@ -933,7 +939,7 @@ xdg_app_context_load_metadata (XdgAppContext *context,
if (g_key_file_has_key (metakey, XDG_APP_METADATA_GROUP_CONTEXT, XDG_APP_METADATA_KEY_PERSISTENT, NULL))
{
g_auto(GStrv) persistent = g_key_file_get_string_list (metakey, XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_PERSISTENT, NULL, error);
+ XDG_APP_METADATA_KEY_PERSISTENT, NULL, error);
if (persistent == NULL)
return FALSE;
@@ -957,7 +963,7 @@ xdg_app_context_load_metadata (XdgAppContext *context,
return FALSE;
policy = xdg_app_policy_from_string (value, error);
- if ((int)policy == -1)
+ if ((int) policy == -1)
return FALSE;
xdg_app_context_set_session_bus_policy (context, key, policy);
@@ -980,7 +986,7 @@ xdg_app_context_load_metadata (XdgAppContext *context,
return FALSE;
policy = xdg_app_policy_from_string (value, error);
- if ((int)policy == -1)
+ if ((int) policy == -1)
return FALSE;
xdg_app_context_set_system_bus_policy (context, key, policy);
@@ -1006,8 +1012,8 @@ xdg_app_context_load_metadata (XdgAppContext *context,
}
void
-xdg_app_context_save_metadata (XdgAppContext *context,
- GKeyFile *metakey)
+xdg_app_context_save_metadata (XdgAppContext *context,
+ GKeyFile *metakey)
{
g_auto(GStrv) shared = xdg_app_context_shared_to_string (context->shares, context->shares_valid);
g_auto(GStrv) sockets = xdg_app_context_sockets_to_string (context->sockets, context->sockets_valid);
@@ -1016,37 +1022,49 @@ xdg_app_context_save_metadata (XdgAppContext *context,
gpointer key, value;
if (shared[0] != NULL)
- g_key_file_set_string_list (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_SHARED,
- (const char * const*)shared, g_strv_length (shared));
+ {
+ g_key_file_set_string_list (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_SHARED,
+ (const char * const *) shared, g_strv_length (shared));
+ }
else
- g_key_file_remove_key (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_SHARED,
- NULL);
+ {
+ g_key_file_remove_key (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_SHARED,
+ NULL);
+ }
if (sockets[0] != NULL)
- g_key_file_set_string_list (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_SOCKETS,
- (const char * const*)sockets, g_strv_length (sockets));
+ {
+ g_key_file_set_string_list (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_SOCKETS,
+ (const char * const *) sockets, g_strv_length (sockets));
+ }
else
- g_key_file_remove_key (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_SOCKETS,
- NULL);
+ {
+ g_key_file_remove_key (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_SOCKETS,
+ NULL);
+ }
if (devices[0] != NULL)
- g_key_file_set_string_list (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_DEVICES,
- (const char * const*)devices, g_strv_length (devices));
+ {
+ g_key_file_set_string_list (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_DEVICES,
+ (const char * const *) devices, g_strv_length (devices));
+ }
else
- g_key_file_remove_key (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_DEVICES,
- NULL);
+ {
+ g_key_file_remove_key (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_DEVICES,
+ NULL);
+ }
if (g_hash_table_size (context->filesystems) > 0)
{
@@ -1066,28 +1084,32 @@ xdg_app_context_save_metadata (XdgAppContext *context,
g_key_file_set_string_list (metakey,
XDG_APP_METADATA_GROUP_CONTEXT,
XDG_APP_METADATA_KEY_FILESYSTEMS,
- (const char * const*)array->pdata, array->len);
+ (const char * const *) array->pdata, array->len);
}
else
- g_key_file_remove_key (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_FILESYSTEMS,
- NULL);
+ {
+ g_key_file_remove_key (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_FILESYSTEMS,
+ NULL);
+ }
if (g_hash_table_size (context->persistent) > 0)
{
- g_autofree char **keys = (char **)g_hash_table_get_keys_as_array (context->persistent, NULL);
+ g_autofree char **keys = (char **) g_hash_table_get_keys_as_array (context->persistent, NULL);
g_key_file_set_string_list (metakey,
XDG_APP_METADATA_GROUP_CONTEXT,
XDG_APP_METADATA_KEY_PERSISTENT,
- (const char * const*)keys, g_strv_length (keys));
+ (const char * const *) keys, g_strv_length (keys));
}
else
- g_key_file_remove_key (metakey,
- XDG_APP_METADATA_GROUP_CONTEXT,
- XDG_APP_METADATA_KEY_PERSISTENT,
- NULL);
+ {
+ g_key_file_remove_key (metakey,
+ XDG_APP_METADATA_GROUP_CONTEXT,
+ XDG_APP_METADATA_KEY_PERSISTENT,
+ NULL);
+ }
g_key_file_remove_group (metakey, XDG_APP_METADATA_GROUP_SESSION_BUS_POLICY, NULL);
g_hash_table_iter_init (&iter, context->session_bus_policy);
@@ -1097,7 +1119,7 @@ xdg_app_context_save_metadata (XdgAppContext *context,
if (policy > 0)
g_key_file_set_string (metakey,
XDG_APP_METADATA_GROUP_SESSION_BUS_POLICY,
- (char *)key, xdg_app_policy_to_string (policy));
+ (char *) key, xdg_app_policy_to_string (policy));
}
g_key_file_remove_group (metakey, XDG_APP_METADATA_GROUP_SYSTEM_BUS_POLICY, NULL);
@@ -1108,7 +1130,7 @@ xdg_app_context_save_metadata (XdgAppContext *context,
if (policy > 0)
g_key_file_set_string (metakey,
XDG_APP_METADATA_GROUP_SYSTEM_BUS_POLICY,
- (char *)key, xdg_app_policy_to_string (policy));
+ (char *) key, xdg_app_policy_to_string (policy));
}
g_key_file_remove_group (metakey, XDG_APP_METADATA_GROUP_ENVIRONMENT, NULL);
@@ -1117,12 +1139,12 @@ xdg_app_context_save_metadata (XdgAppContext *context,
{
g_key_file_set_string (metakey,
XDG_APP_METADATA_GROUP_ENVIRONMENT,
- (char *)key, (char *)value);
+ (char *) key, (char *) value);
}
}
void
-xdg_app_context_allow_host_fs (XdgAppContext *context)
+xdg_app_context_allow_host_fs (XdgAppContext *context)
{
xdg_app_context_add_filesystem (context, "host");
}
@@ -1150,9 +1172,10 @@ extract_unix_path_from_dbus_address (const char *address)
}
#ifdef ENABLE_XAUTH
-static gboolean auth_streq (char *str,
- char *au_str,
- int au_len)
+static gboolean
+auth_streq (char *str,
+ char *au_str,
+ int au_len)
{
return au_len == strlen (str) && memcmp (str, au_str, au_len) == 0;
}
@@ -1192,11 +1215,11 @@ write_xauth (char *number, FILE *output)
local_xa.number_length = 2;
}
- if (!XauWriteAuth(output, &local_xa))
+ if (!XauWriteAuth (output, &local_xa))
g_warning ("xauth write error");
}
- XauDisposeAuth(xa);
+ XauDisposeAuth (xa);
}
fclose (f);
@@ -1217,8 +1240,8 @@ add_args (GPtrArray *argv_array, ...)
static int
create_tmp_fd (const char *contents,
- gssize length,
- GError **error)
+ gssize length,
+ GError **error)
{
char template[] = "/tmp/tmp_fd_XXXXXX";
int fd;
@@ -1270,7 +1293,7 @@ create_tmp_fd (const char *contents,
static void
xdg_app_run_add_x11_args (GPtrArray *argv_array,
- char ***envp_p)
+ char ***envp_p)
{
char *x11_socket = NULL;
const char *display = g_getenv ("DISPLAY");
@@ -1305,7 +1328,7 @@ xdg_app_run_add_x11_args (GPtrArray *argv_array,
if (tmp_fd != -1)
{
g_autofree char *tmp_fd_str = g_strdup_printf ("%d", tmp_fd);
- g_autofree char *dest = g_strdup_printf ("/run/user/%d/Xauthority", getuid());
+ g_autofree char *dest = g_strdup_printf ("/run/user/%d/Xauthority", getuid ());
write_xauth (d, output);
add_args (argv_array,
@@ -1320,18 +1343,22 @@ xdg_app_run_add_x11_args (GPtrArray *argv_array,
lseek (tmp_fd, 0, SEEK_SET);
}
else
- close (fd);
+ {
+ close (fd);
+ }
}
#endif
}
else
- *envp_p = g_environ_unsetenv (*envp_p, "DISPLAY");
+ {
+ *envp_p = g_environ_unsetenv (*envp_p, "DISPLAY");
+ }
}
static void
xdg_app_run_add_wayland_args (GPtrArray *argv_array,
- char ***envp_p)
+ char ***envp_p)
{
g_autofree char *wayland_socket = g_build_filename (g_get_user_runtime_dir (), "wayland-0", NULL);
g_autofree char *sandbox_wayland_socket = g_strdup_printf ("/run/user/%d/wayland-0", getuid ());
@@ -1346,7 +1373,7 @@ xdg_app_run_add_wayland_args (GPtrArray *argv_array,
static void
xdg_app_run_add_pulseaudio_args (GPtrArray *argv_array,
- char ***envp_p)
+ char ***envp_p)
{
char *pulseaudio_socket = g_build_filename (g_get_user_runtime_dir (), "pulse/native", NULL);
@@ -1398,10 +1425,10 @@ create_proxy_socket (char *template)
gboolean
xdg_app_run_add_system_dbus_args (XdgAppContext *context,
- char ***envp_p,
- GPtrArray *argv_array,
- GPtrArray *dbus_proxy_argv,
- gboolean unrestricted)
+ char ***envp_p,
+ GPtrArray *argv_array,
+ GPtrArray *dbus_proxy_argv,
+ gboolean unrestricted)
{
const char *dbus_address = g_getenv ("DBUS_SYSTEM_BUS_ADDRESS");
g_autofree char *real_dbus_address = NULL;
@@ -1450,9 +1477,9 @@ xdg_app_run_add_system_dbus_args (XdgAppContext *context,
gboolean
xdg_app_run_add_session_dbus_args (GPtrArray *argv_array,
- char ***envp_p,
+ char ***envp_p,
GPtrArray *dbus_proxy_argv,
- gboolean unrestricted)
+ gboolean unrestricted)
{
const char *dbus_address = g_getenv ("DBUS_SESSION_BUS_ADDRESS");
char *dbus_session_socket = NULL;
@@ -1495,9 +1522,9 @@ xdg_app_run_add_session_dbus_args (GPtrArray *argv_array,
}
static void
-xdg_app_add_bus_filters (GPtrArray *dbus_proxy_argv,
- GHashTable *ht,
- const char *app_id,
+xdg_app_add_bus_filters (GPtrArray *dbus_proxy_argv,
+ GHashTable *ht,
+ const char *app_id,
XdgAppContext *context)
{
GHashTableIter iter;
@@ -1516,16 +1543,16 @@ xdg_app_add_bus_filters (GPtrArray *dbus_proxy_argv,
XdgAppPolicy policy = GPOINTER_TO_INT (value);
if (policy > 0)
- g_ptr_array_add (dbus_proxy_argv, g_strdup_printf ("--%s=%s", xdg_app_policy_to_string (policy), (char *)key));
+ g_ptr_array_add (dbus_proxy_argv, g_strdup_printf ("--%s=%s", xdg_app_policy_to_string (policy), (char *) key));
}
}
gboolean
-xdg_app_run_add_extension_args (GPtrArray *argv_array,
- GKeyFile *metakey,
- const char *full_ref,
+xdg_app_run_add_extension_args (GPtrArray *argv_array,
+ GKeyFile *metakey,
+ const char *full_ref,
GCancellable *cancellable,
- GError **error)
+ GError **error)
{
g_auto(GStrv) parts = NULL;
gboolean is_app;
@@ -1559,15 +1586,15 @@ xdg_app_run_add_extension_args (GPtrArray *argv_array,
}
}
- g_list_free_full (extensions, (GDestroyNotify)xdg_app_extension_free);
+ g_list_free_full (extensions, (GDestroyNotify) xdg_app_extension_free);
return TRUE;
}
static void
-add_file_arg (GPtrArray *argv_array,
+add_file_arg (GPtrArray *argv_array,
XdgAppFilesystemMode mode,
- const char *path)
+ const char *path)
{
struct stat st;
@@ -1584,13 +1611,13 @@ add_file_arg (GPtrArray *argv_array,
}
void
-xdg_app_run_add_environment_args (GPtrArray *argv_array,
- char ***envp_p,
- GPtrArray *session_bus_proxy_argv,
- GPtrArray *system_bus_proxy_argv,
- const char *app_id,
+xdg_app_run_add_environment_args (GPtrArray *argv_array,
+ char ***envp_p,
+ GPtrArray *session_bus_proxy_argv,
+ GPtrArray *system_bus_proxy_argv,
+ const char *app_id,
XdgAppContext *context,
- GFile *app_id_dir)
+ GFile *app_id_dir)
{
GHashTableIter iter;
gpointer key, value;
@@ -1618,13 +1645,15 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
if (g_file_test ("/dev/dri", G_FILE_TEST_IS_DIR))
add_args (argv_array, "--dev-bind", "/dev/dri", "/dev/dri", NULL);
if (g_file_test ("/dev/nvidiactl", G_FILE_TEST_EXISTS))
- add_args (argv_array,
- "--dev-bind", "/dev/nvidiactl", "/dev/nvidiactl",
- "--dev-bind", "/dev/nvidia0", "/dev/nvidia0",
- NULL);
+ {
+ add_args (argv_array,
+ "--dev-bind", "/dev/nvidiactl", "/dev/nvidiactl",
+ "--dev-bind", "/dev/nvidia0", "/dev/nvidia0",
+ NULL);
+ }
}
- fs_mode = (XdgAppFilesystemMode)g_hash_table_lookup (context->filesystems, "host");
+ fs_mode = (XdgAppFilesystemMode) g_hash_table_lookup (context->filesystems, "host");
if (fs_mode != 0)
{
DIR *dir;
@@ -1651,7 +1680,7 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
add_file_arg (argv_array, fs_mode, "/run/media");
}
- home_mode = (XdgAppFilesystemMode)g_hash_table_lookup (context->filesystems, "home");
+ home_mode = (XdgAppFilesystemMode) g_hash_table_lookup (context->filesystems, "home");
if (home_mode != 0)
{
g_debug ("Allowing homedir access");
@@ -1683,7 +1712,7 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
while (g_hash_table_iter_next (&iter, &key, &value))
{
const char *filesystem = key;
- XdgAppFilesystemMode mode = GPOINTER_TO_INT(value);
+ XdgAppFilesystemMode mode = GPOINTER_TO_INT (value);
if (value == NULL ||
strcmp (filesystem, "host") == 0 ||
@@ -1728,7 +1757,7 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
{
g_autofree char *path = NULL;
- path = g_build_filename (g_get_home_dir(), filesystem+2, NULL);
+ path = g_build_filename (g_get_home_dir (), filesystem + 2, NULL);
if (g_file_test (path, G_FILE_TEST_EXISTS))
add_file_arg (argv_array, mode, path);
}
@@ -1738,7 +1767,9 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
add_file_arg (argv_array, mode, filesystem);
}
else
- g_warning ("Unexpected filesystem arg %s\n", filesystem);
+ {
+ g_warning ("Unexpected filesystem arg %s\n", filesystem);
+ }
}
/* Do this after setting up everything in the home dir, so its not overwritten */
@@ -1808,9 +1839,7 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
g_debug ("Allowing session-dbus access");
if (xdg_app_run_add_session_dbus_args (argv_array, envp_p, session_bus_proxy_argv, unrestricted_session_bus) &&
!unrestricted_session_bus && session_bus_proxy_argv)
- {
- xdg_app_add_bus_filters (session_bus_proxy_argv, context->session_bus_policy, app_id, context);
- }
+ xdg_app_add_bus_filters (session_bus_proxy_argv, context->session_bus_policy, app_id, context);
unrestricted_system_bus = (context->sockets & XDG_APP_CONTEXT_SOCKET_SYSTEM_BUS) != 0;
if (unrestricted_system_bus)
@@ -1818,27 +1847,29 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
if (xdg_app_run_add_system_dbus_args (context, envp_p, argv_array, system_bus_proxy_argv,
unrestricted_system_bus) &&
!unrestricted_system_bus && system_bus_proxy_argv)
- {
- xdg_app_add_bus_filters (system_bus_proxy_argv, context->system_bus_policy, NULL, context);
- }
+ xdg_app_add_bus_filters (system_bus_proxy_argv, context->system_bus_policy, NULL, context);
}
-static const struct {const char *env; const char *val;} default_exports[] = {
- {"PATH","/app/bin:/usr/bin"},
+static const struct {const char *env;
+ const char *val;
+} default_exports[] = {
+ {"PATH", "/app/bin:/usr/bin"},
{"LD_LIBRARY_PATH", "/app/lib"},
- {"XDG_CONFIG_DIRS","/app/etc/xdg:/etc/xdg"},
- {"XDG_DATA_DIRS","/app/share:/usr/share"},
- {"SHELL","/bin/sh"},
+ {"XDG_CONFIG_DIRS", "/app/etc/xdg:/etc/xdg"},
+ {"XDG_DATA_DIRS", "/app/share:/usr/share"},
+ {"SHELL", "/bin/sh"},
};
-static const struct {const char *env; const char *val;} devel_exports[] = {
- {"ACLOCAL_PATH","/app/share/aclocal"},
- {"C_INCLUDE_PATH","/app/include"},
- {"CPLUS_INCLUDE_PATH","/app/include"},
- {"LDFLAGS","-L/app/lib "},
- {"PKG_CONFIG_PATH","/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"},
- {"LC_ALL","en_US.utf8"},
+static const struct {const char *env;
+ const char *val;
+} devel_exports[] = {
+ {"ACLOCAL_PATH", "/app/share/aclocal"},
+ {"C_INCLUDE_PATH", "/app/include"},
+ {"CPLUS_INCLUDE_PATH", "/app/include"},
+ {"LDFLAGS", "-L/app/lib "},
+ {"PKG_CONFIG_PATH", "/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"},
+ {"LC_ALL", "en_US.utf8"},
};
char **
@@ -1881,7 +1912,7 @@ xdg_app_run_get_minimal_env (gboolean devel)
env_array = g_ptr_array_new_with_free_func (g_free);
- for (i = 0; i < G_N_ELEMENTS(default_exports); i++)
+ for (i = 0; i < G_N_ELEMENTS (default_exports); i++)
g_ptr_array_add (env_array, g_strdup_printf ("%s=%s", default_exports[i].env, default_exports[i].val));
if (devel)
@@ -1890,25 +1921,25 @@ xdg_app_run_get_minimal_env (gboolean devel)
g_ptr_array_add (env_array, g_strdup_printf ("%s=%s", devel_exports[i].env, devel_exports[i].val));
}
- for (i = 0; i < G_N_ELEMENTS(copy); i++)
+ for (i = 0; i < G_N_ELEMENTS (copy); i++)
{
- const char *current = g_getenv(copy[i]);
+ const char *current = g_getenv (copy[i]);
if (current)
g_ptr_array_add (env_array, g_strdup_printf ("%s=%s", copy[i], current));
}
if (!devel)
{
- for (i = 0; i < G_N_ELEMENTS(copy_nodevel); i++)
+ for (i = 0; i < G_N_ELEMENTS (copy_nodevel); i++)
{
- const char *current = g_getenv(copy_nodevel[i]);
+ const char *current = g_getenv (copy_nodevel[i]);
if (current)
g_ptr_array_add (env_array, g_strdup_printf ("%s=%s", copy_nodevel[i], current));
}
}
g_ptr_array_add (env_array, NULL);
- return (char **)g_ptr_array_free (env_array, FALSE);
+ return (char **) g_ptr_array_free (env_array, FALSE);
}
char **
@@ -1916,15 +1947,15 @@ xdg_app_run_apply_env_default (char **envp)
{
int i;
- for (i = 0; i < G_N_ELEMENTS(default_exports); i++)
+ for (i = 0; i < G_N_ELEMENTS (default_exports); i++)
envp = g_environ_setenv (envp, default_exports[i].env, default_exports[i].val, TRUE);
return envp;
}
char **
-xdg_app_run_apply_env_appid (char **envp,
- GFile *app_dir)
+xdg_app_run_apply_env_appid (char **envp,
+ GFile *app_dir)
{
g_autoptr(GFile) app_dir_data = NULL;
g_autoptr(GFile) app_dir_config = NULL;
@@ -1971,9 +2002,9 @@ xdg_app_get_data_dir (const char *app_id)
}
GFile *
-xdg_app_ensure_data_dir (const char *app_id,
- GCancellable *cancellable,
- GError **error)
+xdg_app_ensure_data_dir (const char *app_id,
+ GCancellable *cancellable,
+ GError **error)
{
g_autoptr(GFile) dir = xdg_app_get_data_dir (app_id);
g_autoptr(GFile) data_dir = g_file_get_child (dir, "data");
@@ -1992,17 +2023,18 @@ xdg_app_ensure_data_dir (const char *app_id,
return g_object_ref (dir);
}
-struct JobData {
- char *job;
+struct JobData
+{
+ char *job;
GMainLoop *main_loop;
};
static void
job_removed_cb (SystemdManager *manager,
- guint32 id,
- char *job,
- char *unit,
- char *result,
+ guint32 id,
+ char *job,
+ char *unit,
+ char *result,
struct JobData *data)
{
if (strcmp (job, data->job) == 0)
@@ -2027,7 +2059,7 @@ xdg_app_run_in_transient_unit (const char *appid, GError **error)
struct JobData data;
gboolean res = FALSE;
- path = g_strdup_printf ("/run/user/%d/systemd/private", getuid());
+ path = g_strdup_printf ("/run/user/%d/systemd/private", getuid ());
if (!g_file_test (path, G_FILE_TEST_EXISTS))
return xdg_app_fail (error,
@@ -2055,7 +2087,7 @@ xdg_app_run_in_transient_unit (const char *appid, GError **error)
if (!manager)
goto out;
- name = g_strdup_printf ("xdg-app-%s-%d.scope", appid, getpid());
+ name = g_strdup_printf ("xdg-app-%s-%d.scope", appid, getpid ());
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(sv)"));
@@ -2064,7 +2096,7 @@ xdg_app_run_in_transient_unit (const char *appid, GError **error)
"PIDs",
g_variant_new_fixed_array (G_VARIANT_TYPE ("u"),
&pid, 1, sizeof (guint32))
- );
+ );
properties = g_variant_builder_end (&builder);
@@ -2082,13 +2114,13 @@ xdg_app_run_in_transient_unit (const char *appid, GError **error)
data.job = job;
data.main_loop = main_loop;
- g_signal_connect (manager,"job-removed", G_CALLBACK (job_removed_cb), &data);
+ g_signal_connect (manager, "job-removed", G_CALLBACK (job_removed_cb), &data);
g_main_loop_run (main_loop);
res = TRUE;
- out:
+out:
if (main_context)
{
g_main_context_pop_thread_default (main_context);
@@ -2142,7 +2174,7 @@ add_default_permissions (XdgAppContext *app_context)
static XdgAppContext *
compute_permissions (GKeyFile *app_metadata,
GKeyFile *runtime_metadata,
- GError **error)
+ GError **error)
{
g_autoptr(XdgAppContext) app_context = NULL;
@@ -2160,12 +2192,12 @@ compute_permissions (GKeyFile *app_metadata,
}
static gboolean
-add_app_info_args (GPtrArray *argv_array,
- XdgAppDeploy *deploy,
- const char *app_id,
- const char *runtime_ref,
+add_app_info_args (GPtrArray *argv_array,
+ XdgAppDeploy *deploy,
+ const char *app_id,
+ const char *runtime_ref,
XdgAppContext *final_app_context,
- GError **error)
+ GError **error)
{
g_autofree char *tmp_path = NULL;
int fd;
@@ -2213,7 +2245,7 @@ add_app_info_args (GPtrArray *argv_array,
static void
add_monitor_path_args (GPtrArray *argv_array,
- char ***envp_p)
+ char ***envp_p)
{
g_autoptr(AutoXdgAppSessionHelper) session_helper = NULL;
g_autofree char *monitor_path = NULL;
@@ -2238,7 +2270,7 @@ add_monitor_path_args (GPtrArray *argv_array,
}
else
{
- char localtime[PATH_MAX+1];
+ char localtime[PATH_MAX + 1];
ssize_t symlink_size;
add_args (argv_array,
@@ -2254,14 +2286,16 @@ add_monitor_path_args (GPtrArray *argv_array,
NULL);
}
else
- add_args (argv_array,
- "--bind", "/etc/localtime", "/etc/localtime",
- NULL);
+ {
+ add_args (argv_array,
+ "--bind", "/etc/localtime", "/etc/localtime",
+ NULL);
+ }
}
}
static void
-add_document_portal_args (GPtrArray *argv_array,
+add_document_portal_args (GPtrArray *argv_array,
const char *app_id)
{
g_autoptr(GDBusConnection) session_bus = NULL;
@@ -2270,9 +2304,9 @@ add_document_portal_args (GPtrArray *argv_array,
session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
if (session_bus)
{
- g_autoptr (GError) local_error = NULL;
- g_autoptr (GDBusMessage) reply = NULL;
- g_autoptr (GDBusMessage) msg =
+ g_autoptr(GError) local_error = NULL;
+ g_autoptr(GDBusMessage) reply = NULL;
+ g_autoptr(GDBusMessage) msg =
g_dbus_message_new_method_call ("org.freedesktop.portal.Documents",
"/org/freedesktop/portal/documents",
"org.freedesktop.portal.Documents",
@@ -2288,7 +2322,9 @@ add_document_portal_args (GPtrArray *argv_array,
if (reply)
{
if (g_dbus_message_to_gerror (reply, &local_error))
- g_warning ("Can't get document portal: %s\n", local_error->message);
+ {
+ g_warning ("Can't get document portal: %s\n", local_error->message);
+ }
else
{
g_autofree char *src_path = NULL;
@@ -2298,7 +2334,7 @@ add_document_portal_args (GPtrArray *argv_array,
src_path = g_strdup_printf ("%s/by-app/%s",
doc_mount_path, app_id);
- dst_path = g_strdup_printf ("/run/user/%d/doc", getuid());
+ dst_path = g_strdup_printf ("/run/user/%d/doc", getuid ());
add_args (argv_array, "--bind", src_path, dst_path, NULL);
}
}
@@ -2309,6 +2345,7 @@ static void
dbus_spawn_child_setup (gpointer user_data)
{
int fd = GPOINTER_TO_INT (user_data);
+
fcntl (fd, F_SETFD, 0);
}
@@ -2316,8 +2353,8 @@ static gboolean
add_dbus_proxy_args (GPtrArray *argv_array,
GPtrArray *dbus_proxy_argv,
gboolean enable_logging,
- int sync_fds[2],
- GError **error)
+ int sync_fds[2],
+ GError **error)
{
char x = 'x';
const char *proxy;
@@ -2351,7 +2388,7 @@ add_dbus_proxy_args (GPtrArray *argv_array,
g_ptr_array_add (dbus_proxy_argv, NULL); /* NULL terminate */
if (!g_spawn_async (NULL,
- (char **)dbus_proxy_argv->pdata,
+ (char **) dbus_proxy_argv->pdata,
NULL,
G_SPAWN_SEARCH_PATH,
dbus_spawn_child_setup,
@@ -2380,19 +2417,19 @@ add_dbus_proxy_args (GPtrArray *argv_array,
static inline void
cleanup_seccomp (void *p)
{
- scmp_filter_ctx *pp = (scmp_filter_ctx *)p;
+ scmp_filter_ctx *pp = (scmp_filter_ctx *) p;
if (*pp)
seccomp_release (*pp);
}
static gboolean
-setup_seccomp (GPtrArray *argv_array,
+setup_seccomp (GPtrArray *argv_array,
const char *arch,
- gboolean devel,
- GError **error)
+ gboolean devel,
+ GError **error)
{
- __attribute__ ((cleanup(cleanup_seccomp))) scmp_filter_ctx seccomp = NULL;
+ __attribute__((cleanup (cleanup_seccomp))) scmp_filter_ctx seccomp = NULL;
/**** BEGIN NOTE ON CODE SHARING
*
@@ -2423,47 +2460,49 @@ setup_seccomp (GPtrArray *argv_array,
*
**** END NOTE ON CODE SHARING
*/
- struct {
- int scall;
+ struct
+ {
+ int scall;
struct scmp_arg_cmp *arg;
} syscall_blacklist[] = {
/* Block dmesg */
- {SCMP_SYS(syslog)},
+ {SCMP_SYS (syslog)},
/* Useless old syscall */
- {SCMP_SYS(uselib)},
+ {SCMP_SYS (uselib)},
/* Don't allow you to switch to bsd emulation or whatnot */
- {SCMP_SYS(personality)},
+ {SCMP_SYS (personality)},
/* Don't allow disabling accounting */
- {SCMP_SYS(acct)},
+ {SCMP_SYS (acct)},
/* 16-bit code is unnecessary in the sandbox, and modify_ldt is a
historic source of interesting information leaks. */
- {SCMP_SYS(modify_ldt)},
+ {SCMP_SYS (modify_ldt)},
/* Don't allow reading current quota use */
- {SCMP_SYS(quotactl)},
+ {SCMP_SYS (quotactl)},
/* Scary VM/NUMA ops */
- {SCMP_SYS(move_pages)},
- {SCMP_SYS(mbind)},
- {SCMP_SYS(get_mempolicy)},
- {SCMP_SYS(set_mempolicy)},
- {SCMP_SYS(migrate_pages)},
+ {SCMP_SYS (move_pages)},
+ {SCMP_SYS (mbind)},
+ {SCMP_SYS (get_mempolicy)},
+ {SCMP_SYS (set_mempolicy)},
+ {SCMP_SYS (migrate_pages)},
/* Don't allow subnamespace setups: */
- {SCMP_SYS(unshare)},
- {SCMP_SYS(mount)},
- {SCMP_SYS(pivot_root)},
- {SCMP_SYS(clone), &SCMP_A0(SCMP_CMP_MASKED_EQ, CLONE_NEWUSER, CLONE_NEWUSER)},
+ {SCMP_SYS (unshare)},
+ {SCMP_SYS (mount)},
+ {SCMP_SYS (pivot_root)},
+ {SCMP_SYS (clone), &SCMP_A0 (SCMP_CMP_MASKED_EQ, CLONE_NEWUSER, CLONE_NEWUSER)},
};
- struct {
- int scall;
+ struct
+ {
+ int scall;
struct scmp_arg_cmp *arg;
} syscall_nondevel_blacklist[] = {
/* Profiling operations; we expect these to be done by tools from outside
* the sandbox. In particular perf has been the source of many CVEs.
*/
- {SCMP_SYS(perf_event_open)},
- {SCMP_SYS(ptrace)}
+ {SCMP_SYS (perf_event_open)},
+ {SCMP_SYS (ptrace)}
};
/* Blacklist all but unix, inet, inet6 and netlink */
int socket_family_blacklist[] = {
@@ -2539,9 +2578,9 @@ setup_seccomp (GPtrArray *argv_array,
{
int scall = syscall_blacklist[i].scall;
if (syscall_blacklist[i].arg)
- r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO(EPERM), scall, 1, *syscall_blacklist[i].arg);
+ r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO (EPERM), scall, 1, *syscall_blacklist[i].arg);
else
- r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO(EPERM), scall, 0);
+ r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO (EPERM), scall, 0);
if (r < 0 && r == -EFAULT /* unknown syscall */)
return xdg_app_fail (error, "Failed to block syscall %d", scall);
}
@@ -2552,9 +2591,9 @@ setup_seccomp (GPtrArray *argv_array,
{
int scall = syscall_nondevel_blacklist[i].scall;
if (syscall_nondevel_blacklist[i].arg)
- r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO(EPERM), scall, 1, *syscall_nondevel_blacklist[i].arg);
+ r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO (EPERM), scall, 1, *syscall_nondevel_blacklist[i].arg);
else
- r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO(EPERM), scall, 0);
+ r = seccomp_rule_add (seccomp, SCMP_ACT_ERRNO (EPERM), scall, 0);
if (r < 0 && r == -EFAULT /* unknown syscall */)
return xdg_app_fail (error, "Failed to block syscall %d", scall);
@@ -2568,9 +2607,9 @@ setup_seccomp (GPtrArray *argv_array,
{
int family = socket_family_blacklist[i];
if (i == G_N_ELEMENTS (socket_family_blacklist) - 1)
- r = seccomp_rule_add_exact (seccomp, SCMP_ACT_ERRNO(EAFNOSUPPORT), SCMP_SYS(socket), 1, SCMP_A0(SCMP_CMP_GE, family));
+ r = seccomp_rule_add_exact (seccomp, SCMP_ACT_ERRNO (EAFNOSUPPORT), SCMP_SYS (socket), 1, SCMP_A0 (SCMP_CMP_GE, family));
else
- r = seccomp_rule_add_exact (seccomp, SCMP_ACT_ERRNO(EAFNOSUPPORT), SCMP_SYS(socket), 1, SCMP_A0(SCMP_CMP_EQ, family));
+ r = seccomp_rule_add_exact (seccomp, SCMP_ACT_ERRNO (EAFNOSUPPORT), SCMP_SYS (socket), 1, SCMP_A0 (SCMP_CMP_EQ, family));
}
fd = g_file_open_tmp ("xdg-app-seccomp-XXXXXX", &path, error);
@@ -2597,12 +2636,12 @@ setup_seccomp (GPtrArray *argv_array,
#endif
gboolean
-xdg_app_run_setup_base_argv (GPtrArray *argv_array,
- GFile *runtime_files,
- GFile *app_id_dir,
- const char *arch,
+xdg_app_run_setup_base_argv (GPtrArray *argv_array,
+ GFile *runtime_files,
+ GFile *app_id_dir,
+ const char *arch,
XdgAppRunFlags flags,
- GError **error)
+ GError **error)
{
const char *usr_links[] = {"lib", "lib32", "lib64", "bin", "sbin"};
g_autofree char *run_dir = g_strdup_printf ("/run/user/%d", getuid ());
@@ -2614,6 +2653,7 @@ xdg_app_run_setup_base_argv (GPtrArray *argv_array,
g_autofree char *group_fd_str = NULL;
g_autofree char *group_contents = NULL;
struct group *g = getgrgid (getgid ());
+
g_autoptr(GFile) etc = NULL;
passwd_contents = g_strdup_printf ("%s:x:%d:%d:%s:%s:%s\n"
@@ -2629,9 +2669,9 @@ xdg_app_run_setup_base_argv (GPtrArray *argv_array,
passwd_fd_str = g_strdup_printf ("%d", passwd_fd);
group_contents = g_strdup_printf ("%s:x:%d:%s\n"
- "nfsnobody:x:65534:\n",
- g->gr_name,
- getgid (), g_get_user_name ());
+ "nfsnobody:x:65534:\n",
+ g->gr_name,
+ getgid (), g_get_user_name ());
if ((group_fd = create_tmp_fd (group_contents, -1, error)) < 0)
return FALSE;
group_fd_str = g_strdup_printf ("%d", group_fd);
@@ -2669,7 +2709,7 @@ xdg_app_run_setup_base_argv (GPtrArray *argv_array,
{
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
struct dirent *dent;
- char path_buffer[PATH_MAX+1];
+ char path_buffer[PATH_MAX + 1];
ssize_t symlink_size;
glnx_dirfd_iterator_init_at (AT_FDCWD, gs_file_get_path_cached (etc), FALSE, &dfd_iter, NULL);
@@ -2703,7 +2743,9 @@ xdg_app_run_setup_base_argv (GPtrArray *argv_array,
add_args (argv_array, "--symlink", path_buffer, dest, NULL);
}
else
- add_args (argv_array, "--bind", src, dest, NULL);
+ {
+ add_args (argv_array, "--bind", src, dest, NULL);
+ }
}
}
@@ -2721,7 +2763,7 @@ xdg_app_run_setup_base_argv (GPtrArray *argv_array,
NULL);
}
- for (i = 0; i < G_N_ELEMENTS(usr_links); i++)
+ for (i = 0; i < G_N_ELEMENTS (usr_links); i++)
{
const char *subdir = usr_links[i];
g_autoptr(GFile) runtime_subdir = g_file_get_child (runtime_files, subdir);
@@ -2747,7 +2789,7 @@ xdg_app_run_setup_base_argv (GPtrArray *argv_array,
return TRUE;
}
-gchar*
+gchar *
join_args (GPtrArray *argv_array, gsize *len_out)
{
gchar *string;
@@ -2769,17 +2811,17 @@ join_args (GPtrArray *argv_array, gsize *len_out)
}
gboolean
-xdg_app_run_app (const char *app_ref,
- XdgAppDeploy *app_deploy,
+xdg_app_run_app (const char *app_ref,
+ XdgAppDeploy *app_deploy,
XdgAppContext *extra_context,
- const char *custom_runtime,
- const char *custom_runtime_version,
+ const char *custom_runtime,
+ const char *custom_runtime_version,
XdgAppRunFlags flags,
- const char *custom_command,
- char *args[],
- int n_args,
- GCancellable *cancellable,
- GError **error)
+ const char *custom_command,
+ char *args[],
+ int n_args,
+ GCancellable *cancellable,
+ GError **error)
{
g_autoptr(XdgAppDeploy) runtime_deploy = NULL;
g_autoptr(GFile) app_files = NULL;
@@ -2875,7 +2917,7 @@ xdg_app_run_app (const char *app_ref,
app_files = xdg_app_deploy_get_files (app_deploy);
if ((app_id_dir = xdg_app_ensure_data_dir (app_ref_parts[1], cancellable, error)) == NULL)
- return FALSE;
+ return FALSE;
envp = g_get_environ ();
envp = xdg_app_run_apply_env_default (envp);
@@ -2942,7 +2984,9 @@ xdg_app_run_app (const char *app_ref,
}
if (custom_command)
- command = custom_command;
+ {
+ command = custom_command;
+ }
else
{
default_command = g_key_file_get_string (metakey, "Application", "command", &my_error);
@@ -2984,7 +3028,7 @@ xdg_app_run_app (const char *app_ref,
if ((flags & XDG_APP_RUN_FLAG_BACKGROUND) != 0)
{
if (!g_spawn_async (NULL,
- (char **)real_argv_array->pdata,
+ (char **) real_argv_array->pdata,
envp,
G_SPAWN_DEFAULT,
NULL, NULL,
@@ -2994,7 +3038,7 @@ xdg_app_run_app (const char *app_ref,
}
else
{
- if (execvpe (xdg_app_get_bwrap (), (char **)real_argv_array->pdata, envp) == -1)
+ if (execvpe (xdg_app_get_bwrap (), (char **) real_argv_array->pdata, envp) == -1)
{
g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "Unable to start app");
return FALSE;