X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/4c5b873c160b2d3ed9fbc3afa2214fca6dac4c2f..baf723ea141d95eec7a1c4d3baf141c9ec223843:/unix/uxpty.c diff --git a/unix/uxpty.c b/unix/uxpty.c index a1f96946..7ea7131c 100644 --- a/unix/uxpty.c +++ b/unix/uxpty.c @@ -270,7 +270,6 @@ static void fatal_sig_handler(int signum) { putty_signal(signum, SIG_DFL); cleanup_utmp(); - setuid(getuid()); raise(signum); } #endif @@ -531,11 +530,23 @@ void pty_pre_init(void) int gid = getgid(), uid = getuid(); int setresgid(gid_t, gid_t, gid_t); int setresuid(uid_t, uid_t, uid_t); - setresgid(gid, gid, gid); - setresuid(uid, uid, uid); + if (setresgid(gid, gid, gid) < 0) { + perror("setresgid"); + exit(1); + } + if (setresuid(uid, uid, uid) < 0) { + perror("setresuid"); + exit(1); + } #else - setgid(getgid()); - setuid(getuid()); + if (setgid(getgid()) < 0) { + perror("setgid"); + exit(1); + } + if (setuid(getuid()) < 0) { + perror("setuid"); + exit(1); + } #endif } }