diff options
author | Aleksey Manevich <manevich.aleksey@gmail.com> | 2016-07-30 15:30:47 +0300 |
---|---|---|
committer | Aleksey Manevich <manevich.aleksey@gmail.com> | 2016-07-30 15:30:47 +0300 |
commit | 0545762da33ad670681f7c2570eadcd831d14278 (patch) | |
tree | 75b189c55a0e043d5e90c853839e1b7bfea4952a | |
parent | fix cmdline quoting on --join + move cmdline quoting code to functions (diff) | |
download | firejail-0545762da33ad670681f7c2570eadcd831d14278.tar.gz firejail-0545762da33ad670681f7c2570eadcd831d14278.tar.zst firejail-0545762da33ad670681f7c2570eadcd831d14278.zip |
exit with error if length of quoted command line is longer than ARG_MAX
-rw-r--r-- | src/firejail/cmdline.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/firejail/cmdline.c b/src/firejail/cmdline.c index 9818f8ffa..517124d9e 100644 --- a/src/firejail/cmdline.c +++ b/src/firejail/cmdline.c | |||
@@ -132,6 +132,10 @@ void quote_cmdline(char *command_line, char *window_title, int len, int argc, ch | |||
132 | 132 | ||
133 | void build_cmdline(char **command_line, char **window_title, int argc, char **argv, int index) { | 133 | void build_cmdline(char **command_line, char **window_title, int argc, char **argv, int index) { |
134 | int len = cmdline_length(argc, argv, index); | 134 | int len = cmdline_length(argc, argv, index); |
135 | if (len > ARG_MAX) { | ||
136 | errno = E2BIG; | ||
137 | errExit("cmdline_length"); | ||
138 | } | ||
135 | 139 | ||
136 | *command_line = malloc(len + 1); | 140 | *command_line = malloc(len + 1); |
137 | if (!*command_line) | 141 | if (!*command_line) |