aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2015-11-19 07:23:17 -0500
committerLibravatar netblue30 <netblue30@yahoo.com>2015-11-19 07:23:17 -0500
commitf01daa0ecec8b847736288319e49810386f07b91 (patch)
treee2268e4590afd57c31323fd9bb8e722b90bab27c /src
parentadd log and dri to private-dev help and man pages (diff)
parentAdd '"' chars around every argument passed to bash (diff)
downloadfirejail-f01daa0ecec8b847736288319e49810386f07b91.tar.gz
firejail-f01daa0ecec8b847736288319e49810386f07b91.tar.zst
firejail-f01daa0ecec8b847736288319e49810386f07b91.zip
Merge pull request #148 from brunonova/command-line-spaces
Add '"' chars around every argument passed to bash
Diffstat (limited to 'src')
-rw-r--r--src/firejail/main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/firejail/main.c b/src/firejail/main.c
index 3a2da0852..c55d87364 100644
--- a/src/firejail/main.c
+++ b/src/firejail/main.c
@@ -1188,11 +1188,12 @@ int main(int argc, char **argv) {
1188 } 1188 }
1189 else { 1189 else {
1190 // calculate the length of the command 1190 // calculate the length of the command
1191 // TODO: escape the '"' characters, and possibly others like '\' and '!' if they can cause problems
1191 int i; 1192 int i;
1192 int len = 0; 1193 int len = 0;
1193 int argcnt = argc - prog_index; 1194 int argcnt = argc - prog_index;
1194 for (i = 0; i < argcnt; i++) 1195 for (i = 0; i < argcnt; i++)
1195 len += strlen(argv[i + prog_index]) + 1; // + ' ' 1196 len += strlen(argv[i + prog_index]) + 3; // + ' ' + 2 '"'
1196 1197
1197 // build the string 1198 // build the string
1198 cfg.command_line = malloc(len + 1); // + '\0' 1199 cfg.command_line = malloc(len + 1); // + '\0'
@@ -1200,7 +1201,7 @@ int main(int argc, char **argv) {
1200 errExit("malloc"); 1201 errExit("malloc");
1201 char *ptr = cfg.command_line; 1202 char *ptr = cfg.command_line;
1202 for (i = 0; i < argcnt; i++) { 1203 for (i = 0; i < argcnt; i++) {
1203 sprintf(ptr, "%s ", argv[i + prog_index]); 1204 sprintf(ptr, "\"%s\" ", argv[i + prog_index]);
1204 ptr += strlen(ptr); 1205 ptr += strlen(ptr);
1205 } 1206 }
1206 } 1207 }