aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2016-09-27 15:12:11 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2016-09-27 15:12:11 -0400
commit46dc2b34f1fbbc4597b4ff9f6a3cb28b2d500d1b (patch)
tree8d19e465fa0b559d76eac49bcf92fbcafa53b934 /src
parentuser submitted profile repositories (diff)
downloadfirejail-46dc2b34f1fbbc4597b4ff9f6a3cb28b2d500d1b.tar.gz
firejail-46dc2b34f1fbbc4597b4ff9f6a3cb28b2d500d1b.tar.zst
firejail-46dc2b34f1fbbc4597b4ff9f6a3cb28b2d500d1b.zip
CVE-2016-7545
Diffstat (limited to 'src')
-rw-r--r--src/firejail/join.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/firejail/join.c b/src/firejail/join.c
index f11d85cfe..ea44019ca 100644
--- a/src/firejail/join.c
+++ b/src/firejail/join.c
@@ -30,6 +30,12 @@ static uint64_t caps = 0;
30static int apply_seccomp = 0; 30static int apply_seccomp = 0;
31#define BUFLEN 4096 31#define BUFLEN 4096
32 32
33static void signal_handler(int sig){
34 flush_stdin();
35
36 exit(sig);
37}
38
33static void extract_command(int argc, char **argv, int index) { 39static void extract_command(int argc, char **argv, int index) {
34 EUID_ASSERT(); 40 EUID_ASSERT();
35 if (index >= argc) 41 if (index >= argc)
@@ -187,6 +193,7 @@ void join(pid_t pid, int argc, char **argv, int index) {
187 char *homedir = cfg.homedir; 193 char *homedir = cfg.homedir;
188 194
189 extract_command(argc, argv, index); 195 extract_command(argc, argv, index);
196 signal (SIGTERM, signal_handler);
190 197
191 // if the pid is that of a firejail process, use the pid of the first child process 198 // if the pid is that of a firejail process, use the pid of the first child process
192 EUID_ROOT(); 199 EUID_ROOT();