diff options
-rw-r--r-- | src/externs.h | 2 | ||||
-rw-r--r-- | src/main.c | 42 | ||||
-rw-r--r-- | src/util.c | 22 | ||||
-rw-r--r-- | src/variable.c | 2 |
4 files changed, 2 insertions, 66 deletions
diff --git a/src/externs.h b/src/externs.h index 4673236c..3af59a14 100644 --- a/src/externs.h +++ b/src/externs.h @@ -307,8 +307,6 @@ extern s16b monster_race_idx; extern s16b monster_ego_idx; extern object_type *tracked_object; extern int player_uid; -extern int player_euid; -extern int player_egid; extern char player_name[32]; extern char player_base[32]; extern char died_from[80]; @@ -264,57 +264,17 @@ int main(int argc, char *argv[]) argv0 = argv[0]; -#ifdef SET_UID - /* Default permissions on files */ (void)umask(022); -#endif /* SET_UID */ - /* Get the file paths */ init_stuff(); -#ifdef SET_UID - /* Get the user id (?) */ player_uid = getuid(); -# ifdef SAFE_SETUID - -# ifdef _POSIX_SAVED_IDS - - /* Save some info for later */ - player_euid = geteuid(); - player_egid = getegid(); - -# endif - -# if 0 /* XXX XXX XXX */ - - /* Redundant setting necessary in case root is running the game */ - /* If not root or game not setuid the following two calls do nothing */ - - if (setgid(getegid()) != 0) - { - quit("setgid(): cannot set permissions correctly!"); - } - - if (setuid(geteuid()) != 0) - { - quit("setuid(): cannot set permissions correctly!"); - } - -# endif /* XXX XXX XXX */ - -# endif /* SAFE_SETUID */ - -#endif /* SET_UID */ - - -#ifdef SET_UID - /* Acquire the "user name" as a default player name */ user_name(player_name, player_uid); @@ -333,8 +293,6 @@ int main(int argc, char *argv[]) if (ret == FALSE) quit("Cannot create directory " PRIVATE_USER_PATH); } -#endif /* SET_UID */ - @@ -171,14 +171,12 @@ void user_name(char *buf, int id) * Extract a "parsed" path from an initial filename * Normally, we simply copy the filename into the buffer * But leading tilde symbols must be handled in a special way -* Replace "~user/" by the home directory of the user named "user" * Replace "~/" by the home directory of the current user */ errr path_parse(char *buf, int max, cptr file) { cptr u, s; struct passwd *pw; - char user[128]; /* Assume no result */ @@ -200,9 +198,6 @@ errr path_parse(char *buf, int max, cptr file) /* Look for non-user portion of the file */ s = strstr(u, PATH_SEP); - /* Hack -- no long user names */ - if (s && (s >= u + sizeof(user))) return (1); - #ifdef GETLOGIN_BROKEN /* Ask the environment for the home directory */ u = getenv("HOME"); @@ -211,21 +206,8 @@ errr path_parse(char *buf, int max, cptr file) (void)strcpy(buf, u); #else - /* Extract a user name */ - if (s) - { - int i; - for (i = 0; u < s; ++i) user[i] = *u++; - user[i] = '\0'; - u = user; - } - - /* Look up the "current" user */ - if (u[0] == '\0') u = getlogin(); - - /* Look up a user (or "current" user) */ - if (u) pw = getpwnam(u); - else pw = getpwuid(getuid()); + /* Look up password data for user */ + pw = getpwuid(getuid()); /* Nothing found? */ if (!pw) return (1); diff --git a/src/variable.c b/src/variable.c index 5ae33337..2757d2f6 100644 --- a/src/variable.c +++ b/src/variable.c @@ -412,8 +412,6 @@ object_type *tracked_object; * User info */ int player_uid; -int player_euid; -int player_egid; /* * Current player's character name |