summaryrefslogtreecommitdiff
path: root/coreutils/logname.c
diff options
context:
space:
mode:
authorDenis Vlasenko2007-04-10 15:43:37 +0000
committerDenis Vlasenko2007-04-10 15:43:37 +0000
commit99912ca733dd960f5589227fd999c86e73c8e894 (patch)
tree9df947fc08884d498cf76a02204d74b121064134 /coreutils/logname.c
parentff131b980d524a33d8a43cefe65e14f64a43f2da (diff)
downloadbusybox-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.c14
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");