diff --git a/src/fe-common/core/fe-exec.c b/src/fe-common/core/fe-exec.c index 0faabb3c..5347e8d4 100644 --- a/src/fe-common/core/fe-exec.c +++ b/src/fe-common/core/fe-exec.c @@ -39,7 +39,9 @@ #include "window-items.h" #include +#include #include +#include GSList *processes; static int signal_exec_input; @@ -322,8 +324,13 @@ static void process_exec(PROCESS_REC *rec, const char *cmd) /* child process, try to clean up everything */ setsid(); - setuid(getuid()); - setgid(getgid()); + + if (setuid(getuid()) != 0) + _exit(EXIT_FAILURE); + + if (setgid(getgid()) != 0) + _exit(EXIT_FAILURE); + signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_DFL);