X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=coreutils%2Flogname.c;h=62f453f2f0f7d66cbbb14d7cb508d3f31d3b850b;hb=982aa263a0cef10ee4f4c06084a87af736c449ac;hp=da8a1cfc903e31529cfd99913d9a55f81fe7c605;hpb=dfba741457cc81eb2ed3a9d4c074fbad74aa3249;p=oweals%2Fbusybox.git diff --git a/coreutils/logname.c b/coreutils/logname.c index da8a1cfc9..62f453f2f 100644 --- a/coreutils/logname.c +++ b/coreutils/logname.c @@ -4,7 +4,7 @@ * * Copyright (C) 2000 Edward Betts . * - * 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 */ @@ -20,22 +20,23 @@ * a diagnostic message and an error return. */ -#include -#include -#include -#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) { - const char *p; + char buf[64]; - if (argc > 1) { + if (argv[1]) { 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");