diff options
Diffstat (limited to 'coreutils/logname.c')
-rw-r--r-- | coreutils/logname.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/coreutils/logname.c b/coreutils/logname.c index 743e229..aba6ce3 100644 --- a/coreutils/logname.c +++ b/coreutils/logname.c @@ -20,23 +20,23 @@ * a diagnostic message and an error return. */ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> #include "busybox.h" +/* This is a NOFORK applet. Be very careful! */ + int logname_main(int argc, char ATTRIBUTE_UNUSED **argv); int logname_main(int argc, char ATTRIBUTE_UNUSED **argv) { - const char *p; + char buf[128]; if (argc > 1) { bb_show_usage(); } - if ((p = getlogin()) != NULL) { - puts(p); - fflush_stdout_and_exit(EXIT_SUCCESS); + /* Using _r function - avoid pulling in static buffer from libc */ + if (getlogin_r(buf, sizeof(buf)) == 0) { + puts(buf); + return fflush(stdout); } bb_perror_msg_and_die("getlogin"); |