From 462fe5bd8f48f81dfa1cf186198b3588568f612e Mon Sep 17 00:00:00 2001 From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Mon, 10 Jan 2022 17:10:58 +0900 Subject: [PATCH] [Fix] #1971 Fixed the failure of compilation in Cygwin --- src/io/uid-checker.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/io/uid-checker.cpp b/src/io/uid-checker.cpp index d5c3231a6..fc51cceb2 100644 --- a/src/io/uid-checker.cpp +++ b/src/io/uid-checker.cpp @@ -6,13 +6,12 @@ */ void safe_setuid_drop(void) { -#ifdef SET_UID -#ifdef SAFE_SETUID +#ifdef SET_UID && SAFE_SETUID #ifdef SAFE_SETUID_POSIX - if (setuid(getuid()) != 0) { quit(_("setuid(): 正しく許可が取れません!", "setuid(): cannot set permissions correctly!")); } + if (setgid(getgid()) != 0) { quit(_("setgid(): 正しく許可が取れません!", "setgid(): cannot set permissions correctly!")); } @@ -20,12 +19,12 @@ void safe_setuid_drop(void) if (setreuid(geteuid(), getuid()) != 0) { quit(_("setreuid(): 正しく許可が取れません!", "setreuid(): cannot set permissions correctly!")); } + if (setregid(getegid(), getgid()) != 0) { quit(_("setregid(): 正しく許可が取れません!", "setregid(): cannot set permissions correctly!")); } #endif #endif -#endif } /*! @@ -33,27 +32,25 @@ void safe_setuid_drop(void) */ void safe_setuid_grab(PlayerType *player_ptr) { -#ifdef SET_UID -#ifdef SAFE_SETUID +#ifdef SET_UID && SAFE_SETUID #ifdef SAFE_SETUID_POSIX - if (setuid(player_ptr->player_euid) != 0) { quit(_("setuid(): 正しく許可が取れません!", "setuid(): cannot set permissions correctly!")); } + if (setgid(player_ptr->player_egid) != 0) { quit(_("setgid(): 正しく許可が取れません!", "setgid(): cannot set permissions correctly!")); } #else (void)player_ptr; - if (setreuid(geteuid(), getuid()) != 0) { quit(_("setreuid(): 正しく許可が取れません!", "setreuid(): cannot set permissions correctly!")); } + if (setregid(getegid(), getgid()) != 0) { quit(_("setregid(): 正しく許可が取れません!", "setregid(): cannot set permissions correctly!")); } #endif -#endif #else (void)player_ptr; #endif -- 2.11.0