diff options
Diffstat (limited to 'whoami.c')
-rw-r--r-- | whoami.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -29,16 +29,15 @@ static const char whoami_usage[] = "whoami\n\n" | |||
29 | 29 | ||
30 | extern int whoami_main(int argc, char **argv) | 30 | extern int whoami_main(int argc, char **argv) |
31 | { | 31 | { |
32 | struct passwd *pw; | 32 | char *user = xmalloc(9); |
33 | uid_t uid; | 33 | uid_t uid = geteuid(); |
34 | 34 | ||
35 | if (argc > 1) | 35 | if (argc > 1) |
36 | usage(whoami_usage); | 36 | usage(whoami_usage); |
37 | 37 | ||
38 | uid = geteuid(); | 38 | my_getpwuid(user, uid); |
39 | pw = getpwuid(uid); | 39 | if (user) { |
40 | if (pw) { | 40 | puts(user); |
41 | puts(pw->pw_name); | ||
42 | exit(TRUE); | 41 | exit(TRUE); |
43 | } | 42 | } |
44 | fprintf(stderr, "%s: cannot find username for UID %u\n", argv[0], | 43 | fprintf(stderr, "%s: cannot find username for UID %u\n", argv[0], |