mirror of
https://github.com/irssi/irssi.git
synced 2025-02-02 15:08:01 -05: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:
parent
fa92c92797
commit
aaf4cc33db
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user