Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2015-06-22 00:13:31 +0300
committerAntenore Gatta <antenore@simbiosi.org>2015-06-22 00:13:31 +0300
commit5c3be411127ef06bf82584ac253f8b2a49cdc362 (patch)
treeb49f59469fd1dc21cdd81c8b2a1e5045ba65e8ce
parent6691d320660f4b555452f52d48af4bbdc36af3d0 (diff)
parent8450350b87b317224eb4df191f084e1049fe3589 (diff)
Merge pull request #589 from FreeRDP/preexec
coredump when precommand is not quoted. Resolve #520
-rw-r--r--remmina/src/remmina_preexec.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/remmina/src/remmina_preexec.c b/remmina/src/remmina_preexec.c
index 9d73662b7..42a208547 100644
--- a/remmina/src/remmina_preexec.c
+++ b/remmina/src/remmina_preexec.c
@@ -64,10 +64,9 @@ GtkDialog* remmina_preexec_new(RemminaFile* remminafile)
GError *error = NULL;
char **argv;
char const *cmd = NULL;
- //gboolean retval;
GPid child_pid;
- cmd = remmina_file_get_string(remminafile, "precommand");
+ cmd = g_shell_quote(remmina_file_get_string(remminafile, "precommand"));
if (cmd)
{
pcspinner = g_new(PCon_Spinner, 1);
@@ -76,7 +75,6 @@ GtkDialog* remmina_preexec_new(RemminaFile* remminafile)
pcspinner->label_pleasewait = GTK_LABEL(GET_OBJECT("label_pleasewait"));
pcspinner->spinner = GTK_WIDGET(GET_OBJECT("spinner"));
pcspinner->button_cancel = GTK_BUTTON(GET_OBJECT("button_cancel"));
- /* gtk_window_set_transient_for(GTK_WINDOW(dialog), parent_window); */
/* Connect signals */
gtk_builder_connect_signals(builder, NULL);
@@ -95,14 +93,14 @@ GtkDialog* remmina_preexec_new(RemminaFile* remminafile)
/* Consider using G_SPAWN_SEARCH_PATH_FROM_ENVP (from glib 2.38)*/
g_spawn_async( NULL, // cwd
- argv, // argv
- NULL, // envp
- G_SPAWN_SEARCH_PATH |
- G_SPAWN_DO_NOT_REAP_CHILD, // flags
- NULL, // child_setup
- NULL, // child_setup user data
- &child_pid, // exit status
- &error); // error
+ argv, // argv
+ NULL, // envp
+ G_SPAWN_SEARCH_PATH |
+ G_SPAWN_DO_NOT_REAP_CHILD, // flags
+ NULL, // child_setup
+ NULL, // child_setup user data
+ &child_pid, // exit status
+ &error); // error
if (!error)
{
gtk_spinner_start (GTK_SPINNER (pcspinner->spinner));