projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ls: add support for -H
[oweals/busybox.git]
/
coreutils
/
logname.c
diff --git
a/coreutils/logname.c
b/coreutils/logname.c
index da8a1cfc903e31529cfd99913d9a55f81fe7c605..62f453f2f0f7d66cbbb14d7cb508d3f31d3b850b 100644
(file)
--- a/
coreutils/logname.c
+++ b/
coreutils/logname.c
@@
-4,7
+4,7
@@
*
* Copyright (C) 2000 Edward Betts <edward@debian.org>.
*
*
* Copyright (C) 2000 Edward Betts <edward@debian.org>.
*
- * Licensed under GPLv2 or later, see file LICENSE in this
tarball for details
.
+ * Licensed under GPLv2 or later, see file LICENSE in this
source tree
.
*/
/* BB_AUDIT SUSv3 compliant */
*/
/* BB_AUDIT SUSv3 compliant */
@@
-20,22
+20,23
@@
* a diagnostic message and an error return.
*/
* a diagnostic message and an error return.
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include "busybox.h"
+#include "libbb.h"
-int logname_main(int argc, char ATTRIBUTE_UNUSED **argv)
+/* This is a NOFORK applet. Be very careful! */
+
+int logname_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int logname_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
{
{
- c
onst char *p
;
+ c
har buf[64]
;
- if (arg
c > 1
) {
+ if (arg
v[1]
) {
bb_show_usage();
}
bb_show_usage();
}
- if ((p = getlogin()) != NULL) {
- puts(p);
- bb_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_all();
}
bb_perror_msg_and_die("getlogin");
}
bb_perror_msg_and_die("getlogin");