diff options
author | Denis Vlasenko | 2007-04-10 15:43:37 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-04-10 15:43:37 +0000 |
commit | 99912ca733dd960f5589227fd999c86e73c8e894 (patch) | |
tree | 9df947fc08884d498cf76a02204d74b121064134 /coreutils/logname.c | |
parent | ff131b980d524a33d8a43cefe65e14f64a43f2da (diff) | |
download | busybox-99912ca733dd960f5589227fd999c86e73c8e894.zip busybox-99912ca733dd960f5589227fd999c86e73c8e894.tar.gz |
audit small applets and mark some of them as NOFORK.
Put big scary warnings in relevant places.
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"); |