diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2021-02-28 22:12:42 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2021-02-28 22:13:34 -0800 |
commit | 2f7d215539637d8190ed57868980988086883433 (patch) | |
tree | e6436d20d02048104c1dc3f4f9a18aca8deb7f8f /lib/system.h | |
parent | c30dcfedd3c616f706b4f5db166793de4ac1f64d (diff) | |
download | paxutils-2f7d215539637d8190ed57868980988086883433.tar.gz |
Move sys_reset_uid_gid to library
This fixes a problem where ‘gcc -fanalyzer -flto’ (GCC 10)
complained that sys_reset_uid_gid was defined but not used in some
modules. This function belonged in a .c file anyway.
* lib/rtapelib.c (sys_reset_uid_gid):
* paxlib/rtape.c (sys_reset_uid_gid):
Move here from system.h. The code is now duplicated, but so is
most of the rest of this file anyway.
* lib/system.h (sys_reset_uid_gid): Remove.
Diffstat (limited to 'lib/system.h')
-rw-r--r-- | lib/system.h | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/lib/system.h b/lib/system.h index 92b2462..0690363 100644 --- a/lib/system.h +++ b/lib/system.h @@ -465,28 +465,10 @@ char *getenv (); # define SET_BINARY_MODE(arc) setmode(arc, O_BINARY) # define mkdir(file, mode) (mkdir) (file) # define TTY_NAME "con" -# define sys_reset_uid_gid() #else # define SET_BINARY_MODE(arc) # define TTY_NAME "/dev/tty" # include <paxlib.h> -static char const * -sys_reset_uid_gid (void) -{ - uid_t uid = getuid (); - gid_t gid = getgid (); - struct passwd *pw = getpwuid (uid); - - if (!pw) - return "getpwuid"; - if (initgroups (pw->pw_name, gid)) - return "initgroups"; - if (gid != getegid () && setgid (gid) && errno != EPERM) - return "setgid"; - if (uid != geteuid () && setuid (uid) && errno != EPERM) - return "setuid"; - return NULL; -} #endif #if XENIX |