Tito writes:
authorEric Andersen <andersen@codepoet.org>
Thu, 26 Aug 2004 22:36:02 +0000 (22:36 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 26 Aug 2004 22:36:02 +0000 (22:36 -0000)
Hi,
I've fixed also the issue of whoami cutting down usernames.
This time I cannot send a diff because i don't know if my previous patches will be applied
or not, so I send in the whole file.
The changes I've made don't affect size but ensure that usernames of whatever lenght
are correctly displayed.
root@localhost:/dev/pts/3:/root/Desktop/busybox/coreutils# size whoami_orig.o
   text    data     bss     dec     hex filename
    102       0       0     102      66 whoami_orig.o
root@localhost:/dev/pts/3:/root/Desktop/busybox/coreutils# size whoami.o
   text    data     bss     dec     hex filename
     93       0       0      93      5d whoami.o

This should be applied even if the other patches aren't as this matches the behaviour of the  GNU whoami.

Thanks in advance,
Ciao,
Tito

coreutils/whoami.c

index e2a03b1e91c5748afde4a969ae8446a3566f9245..c979b0dd991e4fcd31744293a43f4de8ff3d6695 100644 (file)
 #include <stdlib.h>
 #include <unistd.h>
 #include "busybox.h"
+#include "pwd_.h"
+#include "grp_.h"
 
 extern int whoami_main(int argc, char **argv)
 {
-       char user[9];
+       struct passwd *p;
        uid_t uid;
-
+       
        if (argc > 1)
                bb_show_usage();
 
        uid = geteuid();
-       if (my_getpwuid(user, uid, sizeof(user))) {
-               puts(user);
+       if((p = getpwuid(uid))!=NULL) {
+               puts(p->pw_name);
                bb_fflush_stdout_and_exit(EXIT_SUCCESS);
        }
        bb_error_msg_and_die("cannot find username for UID %u", (unsigned) uid);