From 9e44a5841f0ab9bc03cefb5631c80f3e4e5a60fe Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 28 Nov 2013 20:18:04 -0600 Subject: [PATCH] Move xgetpwuid() and xgetgrgid() into xwrap.c --- lib/lib.h | 2 ++ lib/xwrap.c | 14 ++++++++++++++ toys/posix/id.c | 14 -------------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/lib.h b/lib/lib.h index a0a1c31..e5d4a1d 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -111,6 +111,8 @@ char *xrealpath(char *path); void xchdir(char *path); void xmkpath(char *path, int mode); void xsetuid(uid_t uid); +struct passwd *xgetpwuid(uid_t uid); +struct group *xgetgrgid(gid_t gid); char *xreadlink(char *name); long xparsetime(char *arg, long units, long *fraction); void xpidfile(char *name); diff --git a/lib/xwrap.c b/lib/xwrap.c index 98b4300..71ea920 100644 --- a/lib/xwrap.c +++ b/lib/xwrap.c @@ -399,6 +399,20 @@ void xsetuid(uid_t uid) if (setuid(uid)) perror_exit("xsetuid"); } +struct passwd *xgetpwuid(uid_t uid) +{ + struct passwd *pwd = getpwuid(uid); + if (!pwd) error_exit(NULL); + return pwd; +} + +struct group *xgetgrgid(gid_t gid) +{ + struct group *group = getgrgid(gid); + if (!group) error_exit(NULL); + return group; +} + // This can return null (meaning file not found). It just won't return null // for memory allocation reasons. char *xreadlink(char *name) diff --git a/toys/posix/id.c b/toys/posix/id.c index dbcf9a1..f40f6c1 100644 --- a/toys/posix/id.c +++ b/toys/posix/id.c @@ -52,20 +52,6 @@ static void showid(char *header, unsigned u, char *s) printf("%s%u(%s)", header, u, s); } -struct passwd *xgetpwuid(uid_t uid) -{ - struct passwd *pwd = getpwuid(uid); - if (!pwd) error_exit(NULL); - return pwd; -} - -struct group *xgetgrgid(gid_t gid) -{ - struct group *group = getgrgid(gid); - if (!group) error_exit(NULL); - return group; -} - void do_id(char *username) { int flags, i, ngroups, cmd_groups = toys.which->name[0] == 'g'; -- 2.7.4