forked from Mirrors/flatpak-builder
build: Use an strv for envp instead of a GPtrArray
parent
6006f8d753
commit
11ec2f6895
|
@ -69,7 +69,7 @@ xdg_app_builtin_build (int argc, char **argv, GCancellable *cancellable, GError
|
|||
g_autoptr (GError) my_error = NULL;
|
||||
g_autoptr (GError) my_error2 = NULL;
|
||||
g_autoptr(GPtrArray) argv_array = NULL;
|
||||
g_autoptr(GPtrArray) env_array = NULL;
|
||||
glnx_strfreev char **envp = NULL;
|
||||
gsize metadata_size;
|
||||
const char *directory = NULL;
|
||||
const char *command = "/bin/sh";
|
||||
|
@ -161,11 +161,9 @@ xdg_app_builtin_build (int argc, char **argv, GCancellable *cancellable, GError
|
|||
|
||||
g_ptr_array_add (argv_array, NULL);
|
||||
|
||||
env_array = g_ptr_array_new_with_free_func (g_free);
|
||||
xdg_app_run_setup_minimal_env (env_array, TRUE);
|
||||
g_ptr_array_add (env_array, NULL);
|
||||
envp = xdg_app_run_get_minimal_env (TRUE);
|
||||
|
||||
if (!execve (HELPER, (char **)argv_array->pdata, (char **)env_array->pdata))
|
||||
if (!execve (HELPER, (char **)argv_array->pdata, envp))
|
||||
{
|
||||
g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "Unable to start app");
|
||||
goto out;
|
||||
|
|
|
@ -305,10 +305,10 @@ xdg_app_run_add_environment_args (GPtrArray *argv_array,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
xdg_app_run_setup_minimal_env (GPtrArray *env_array,
|
||||
gboolean devel)
|
||||
char **
|
||||
xdg_app_run_get_minimal_env (gboolean devel)
|
||||
{
|
||||
GPtrArray *env_array;
|
||||
static const char const *exports[] = {
|
||||
"PATH=/self/bin:/usr/bin",
|
||||
"_LD_LIBRARY_PATH=/self/lib",
|
||||
|
@ -358,31 +358,36 @@ xdg_app_run_setup_minimal_env (GPtrArray *env_array,
|
|||
};
|
||||
int i;
|
||||
|
||||
env_array = g_ptr_array_new_with_free_func (g_free);
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS(exports); i++)
|
||||
g_ptr_array_add (env_array, g_strdup (exports[i]));
|
||||
|
||||
if (devel)
|
||||
{
|
||||
for (i = 0; i < G_N_ELEMENTS(exports_devel); i++)
|
||||
g_ptr_array_add (env_array, g_strdup (exports_devel[i]));
|
||||
g_ptr_array_add (env_array, g_strdup (exports_devel[i]));
|
||||
}
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS(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));
|
||||
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++)
|
||||
{
|
||||
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));
|
||||
}
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
GFile *
|
||||
|
|
|
@ -30,8 +30,7 @@ void xdg_app_run_add_environment_args (GPtrArray *argv_array,
|
|||
GKeyFile *metakey,
|
||||
const char **allow,
|
||||
const char **forbid);
|
||||
void xdg_app_run_setup_minimal_env (GPtrArray *env_array,
|
||||
gboolean devel);
|
||||
char ** xdg_app_run_get_minimal_env (gboolean devel);
|
||||
|
||||
void xdg_app_run_add_x11_args (GPtrArray *argv_array);
|
||||
void xdg_app_run_add_no_x11_args (GPtrArray *argv_array);
|
||||
|
|
Loading…
Reference in New Issue