aboutsummaryrefslogtreecommitdiff
path: root/id.c
diff options
context:
space:
mode:
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 }