Disable any buffering to stdout
[oweals/busybox.git] / coreutils / whoami.c
index f3c21b3f5a89886b49fee8ca2d219afa2fe81774..f93034d3a3b860c8b8863cfa17303ee9a490e937 100644 (file)
  *
  */
 
-#include "busybox.h"
+/* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */
+
 #include <stdio.h>
-#include <pwd.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include "busybox.h"
 
 extern int whoami_main(int argc, char **argv)
 {
-       char *user = xmalloc(9);
-       uid_t uid = geteuid();
+       char user[9];
+       uid_t uid;
 
        if (argc > 1)
-               usage(whoami_usage);
+               bb_show_usage();
 
-       my_getpwuid(user, uid);
-       if (user) {
+       uid = geteuid();
+       if (my_getpwuid(user, uid)) {
                puts(user);
-               exit(TRUE);
+               bb_fflush_stdout_and_exit(EXIT_SUCCESS);
        }
-       errorMsg("cannot find username for UID %u\n", (unsigned) uid);
-       return(FALSE);
+       bb_error_msg_and_die("cannot find username for UID %u", (unsigned) uid);
 }