gchar **argv;
gchar **env_keys, **env_values;
guint i, env_length;
- GList *link;
+ GList *keys, *link;
pid_t pid;
int log_fd = -1;
GError *error = NULL;
env_length = g_hash_table_size (process->priv->env);
env_keys = g_malloc (sizeof (gchar *) * env_length);
env_values = g_malloc (sizeof (gchar *) * env_length);
- for (i = 0, link = g_hash_table_get_keys (process->priv->env); i < env_length; i++, link = link->next)
+ keys = g_hash_table_get_keys (process->priv->env);
+ for (i = 0, link = keys; i < env_length; i++, link = link->next)
{
env_keys[i] = link->data;
env_values[i] = g_hash_table_lookup (process->priv->env, env_keys[i]);
}
+ g_list_free (keys);
pid = fork ();
if (pid == 0)