summaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-12-13 01:52:39 +0000
committerEric Andersen <andersen@codepoet.org>2000-12-13 01:52:39 +0000
commitbd193a42a5624f0a72b5f99d554e9a8d2afc64cc (patch)
tree7aacebe98730fbfee623943425a100fd158ba48a /coreutils
parent77508b29fa63d99136fc09f00c5a2addd6331b4c (diff)
downloadbusybox-w32-bd193a42a5624f0a72b5f99d554e9a8d2afc64cc.tar.gz
busybox-w32-bd193a42a5624f0a72b5f99d554e9a8d2afc64cc.tar.bz2
busybox-w32-bd193a42a5624f0a72b5f99d554e9a8d2afc64cc.zip
Fix from Matt Kraai -- a better way to NULL terminate strings for the
my_* passwd and group routines. I should have thought of doing it this way...
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/id.c12
-rw-r--r--coreutils/logname.c4
-rw-r--r--coreutils/ls.c2
-rw-r--r--coreutils/whoami.c4
4 files changed, 8 insertions, 14 deletions
diff --git a/coreutils/id.c b/coreutils/id.c
index 86667f516..3a8e77a1f 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -31,12 +31,11 @@
31extern int id_main(int argc, char **argv) 31extern int id_main(int argc, char **argv)
32{ 32{
33 int no_user = 0, no_group = 0, print_real = 0; 33 int no_user = 0, no_group = 0, print_real = 0;
34 char *cp, *user, *group; 34 char user[9], group[9];
35 long gid; 35 long gid;
36 long pwnam, grnam; 36 long pwnam, grnam;
37 int opt; 37 int opt;
38 38
39 cp = user = group = NULL;
40 gid = 0; 39 gid = 0;
41 40
42 while ((opt = getopt(argc, argv, "ugr")) > 0) { 41 while ((opt = getopt(argc, argv, "ugr")) > 0) {
@@ -57,11 +56,7 @@ extern int id_main(int argc, char **argv)
57 56
58 if (no_user && no_group) usage(id_usage); 57 if (no_user && no_group) usage(id_usage);
59 58
60 user = argv[optind]; 59 if (argv[optind] == NULL) {
61
62 if (user == NULL) {
63 user = xcalloc(9, sizeof(char));
64 group = xcalloc(9, sizeof(char));
65 if (print_real) { 60 if (print_real) {
66 my_getpwuid(user, getuid()); 61 my_getpwuid(user, getuid());
67 my_getgrgid(group, getgid()); 62 my_getgrgid(group, getgid());
@@ -70,7 +65,8 @@ extern int id_main(int argc, char **argv)
70 my_getgrgid(group, getegid()); 65 my_getgrgid(group, getegid());
71 } 66 }
72 } else { 67 } else {
73 group = xcalloc(9, sizeof(char)); 68 strncpy(user, argv[optind], 8);
69 user[8] = '\0';
74 gid = my_getpwnamegid(user); 70 gid = my_getpwnamegid(user);
75 my_getgrgid(group, gid); 71 my_getgrgid(group, gid);
76 } 72 }
diff --git a/coreutils/logname.c b/coreutils/logname.c
index 1fc518bfc..d614e85f1 100644
--- a/coreutils/logname.c
+++ b/coreutils/logname.c
@@ -25,13 +25,13 @@
25 25
26extern int logname_main(int argc, char **argv) 26extern int logname_main(int argc, char **argv)
27{ 27{
28 char *user = xmalloc(9); 28 char user[9];
29 29
30 if (argc > 1) 30 if (argc > 1)
31 usage(logname_usage); 31 usage(logname_usage);
32 32
33 my_getpwuid(user, geteuid()); 33 my_getpwuid(user, geteuid());
34 if (user) { 34 if (*user) {
35 puts(user); 35 puts(user);
36 return EXIT_SUCCESS; 36 return EXIT_SUCCESS;
37 } 37 }
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 94c73b377..655dd7ff4 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -600,13 +600,11 @@ int list_single(struct dnode *dn)
600 break; 600 break;
601 case LIST_ID_NAME: 601 case LIST_ID_NAME:
602#ifdef BB_FEATURE_LS_USERNAME 602#ifdef BB_FEATURE_LS_USERNAME
603 memset(scratch, 0, sizeof(scratch));
604 my_getpwuid(scratch, dn->dstat.st_uid); 603 my_getpwuid(scratch, dn->dstat.st_uid);
605 if (*scratch) 604 if (*scratch)
606 fprintf(stdout, "%-8.8s ", scratch); 605 fprintf(stdout, "%-8.8s ", scratch);
607 else 606 else
608 fprintf(stdout, "%-8d ", dn->dstat.st_uid); 607 fprintf(stdout, "%-8d ", dn->dstat.st_uid);
609 memset(scratch, 0, sizeof(scratch));
610 my_getgrgid(scratch, dn->dstat.st_gid); 608 my_getgrgid(scratch, dn->dstat.st_gid);
611 if (*scratch) 609 if (*scratch)
612 fprintf(stdout, "%-8.8s", scratch); 610 fprintf(stdout, "%-8.8s", scratch);
diff --git a/coreutils/whoami.c b/coreutils/whoami.c
index 6a5dd2c04..38a2b3078 100644
--- a/coreutils/whoami.c
+++ b/coreutils/whoami.c
@@ -26,14 +26,14 @@
26 26
27extern int whoami_main(int argc, char **argv) 27extern int whoami_main(int argc, char **argv)
28{ 28{
29 char *user = xmalloc(9); 29 char user[9];
30 uid_t uid = geteuid(); 30 uid_t uid = geteuid();
31 31
32 if (argc > 1) 32 if (argc > 1)
33 usage(whoami_usage); 33 usage(whoami_usage);
34 34
35 my_getpwuid(user, uid); 35 my_getpwuid(user, uid);
36 if (user) { 36 if (*user) {
37 puts(user); 37 puts(user);
38 return EXIT_SUCCESS; 38 return EXIT_SUCCESS;
39 } 39 }