From 9b7d96458175a852f71700922ca2950577b95f27 Mon Sep 17 00:00:00 2001 From: Erik Andersen Date: Mon, 1 May 2000 19:49:20 +0000 Subject: [PATCH] My little adventure of analyzing lib usage has already rooted out a big "P" Policy violator -- logname was using getlogin(3), which uses utmp under the hood. We don't need no stinkin' utmp (and if we are using tinylogin, it is unlikely to be useful trying). -Erik --- TODO | 2 ++ coreutils/logname.c | 10 +++++----- logname.c | 10 +++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/TODO b/TODO index 8b4279d87..fade2e249 100644 --- a/TODO +++ b/TODO @@ -44,6 +44,8 @@ It would be a very nice thing to reduce this list to an absolute minimum, and then create a microLibc to provide these functions. There is no good reason for GNU libc to be so big. I'm sure it can be a lot better. +(BTW, this is more informative if BB_FEATURE_NFSMOUNT is turned off...) + ----------------------- diff --git a/coreutils/logname.c b/coreutils/logname.c index 182f40ed2..bde1752ba 100644 --- a/coreutils/logname.c +++ b/coreutils/logname.c @@ -29,16 +29,16 @@ static const char logname_usage[] = "logname\n\n" extern int logname_main(int argc, char **argv) { - char *cp; + char *user = xmalloc(9); if (argc > 1) usage(logname_usage); - cp = getlogin(); - if (cp) { - puts(cp); + my_getpwuid(user, geteuid()); + if (user) { + puts(user); exit(TRUE); } - fprintf(stderr, "%s: no login name\n", argv[0]); + fprintf(stderr, "no login name\n"); exit(FALSE); } diff --git a/logname.c b/logname.c index 182f40ed2..bde1752ba 100644 --- a/logname.c +++ b/logname.c @@ -29,16 +29,16 @@ static const char logname_usage[] = "logname\n\n" extern int logname_main(int argc, char **argv) { - char *cp; + char *user = xmalloc(9); if (argc > 1) usage(logname_usage); - cp = getlogin(); - if (cp) { - puts(cp); + my_getpwuid(user, geteuid()); + if (user) { + puts(user); exit(TRUE); } - fprintf(stderr, "%s: no login name\n", argv[0]); + fprintf(stderr, "no login name\n"); exit(FALSE); }