From 7ab61fae3128796df4f8f62da36da437b1d3d7a7 Mon Sep 17 00:00:00 2001 From: netblue30 Date: Tue, 28 Jun 2016 13:04:54 -0400 Subject: fixing ampersand url --- src/firejail/no_sandbox.c | 5 +++-- src/firejail/run_symlink.c | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/firejail/no_sandbox.c b/src/firejail/no_sandbox.c index 9672d003e..f6ad3d472 100644 --- a/src/firejail/no_sandbox.c +++ b/src/firejail/no_sandbox.c @@ -180,7 +180,7 @@ void run_no_sandbox(int argc, char **argv) { } int start_index = i; for (i = start_index; i < argc; i++) - len += strlen(argv[i]) + 1; + len += strlen(argv[i]) + 3; // allocate command = malloc(len + 1); @@ -191,8 +191,9 @@ void run_no_sandbox(int argc, char **argv) { // copy for (i = start_index; i < argc; i++) { + strcat(command, "\""); strcat(command, argv[i]); - strcat(command, " "); + strcat(command, "\" "); } } diff --git a/src/firejail/run_symlink.c b/src/firejail/run_symlink.c index cc6f6b3e9..554d243e5 100644 --- a/src/firejail/run_symlink.c +++ b/src/firejail/run_symlink.c @@ -102,8 +102,13 @@ void run_symlink(int argc, char **argv) { a[0] = firejail; a[1] = program; int i; - for (i = 0; i < (argc - 1); i++) - a[i + 2] = argv[i + 1]; + for (i = 0; i < (argc - 1); i++) { + char *str = malloc(strlen(argv[i + 1])); + if (str == NULL) + errExit("malloc"); + sprintf(str, "\"%s\"", argv[i + 1]); + a[i + 2] = str; + } a[i + 2] = NULL; execvp(a[0], a); -- cgit v1.2.3-70-g09d2