aboutsummaryrefslogtreecommitdiff
path: root/id.c
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 /id.c
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 'id.c')
-rw-r--r--id.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/id.c b/id.c
index 86667f516..3a8e77a1f 100644
--- a/id.c
+++ b/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 }