diff options
author | Eric Andersen <andersen@codepoet.org> | 2000-12-13 01:52:39 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2000-12-13 01:52:39 +0000 |
commit | bd193a42a5624f0a72b5f99d554e9a8d2afc64cc (patch) | |
tree | 7aacebe98730fbfee623943425a100fd158ba48a /coreutils | |
parent | 77508b29fa63d99136fc09f00c5a2addd6331b4c (diff) | |
download | busybox-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.c | 12 | ||||
-rw-r--r-- | coreutils/logname.c | 4 | ||||
-rw-r--r-- | coreutils/ls.c | 2 | ||||
-rw-r--r-- | coreutils/whoami.c | 4 |
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 @@ | |||
31 | extern int id_main(int argc, char **argv) | 31 | extern 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 | ||
26 | extern int logname_main(int argc, char **argv) | 26 | extern 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 | ||
27 | extern int whoami_main(int argc, char **argv) | 27 | extern 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 | } |