1
0
mirror of https://github.com/irssi/irssi.git synced 2024-09-29 04:45:57 -04:00

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
This commit is contained in:
Alexander Færøy 2013-12-13 22:23:39 +00:00 committed by ahf
parent fa92c92797
commit aaf4cc33db

View File

@ -39,7 +39,9 @@
#include "window-items.h"
#include <signal.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
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);