From aaf4cc33db8f8444d60e77e6e7bfb3bb9168bd38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20F=C3=A6r=C3=B8y?= Date: Fri, 13 Dec 2013 22:23:39 +0000 Subject: [PATCH] Check setuid() and getuid() for errors Thanks to Hector Marco for reporting. git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5228 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-common/core/fe-exec.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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);