diff options
Diffstat (limited to 'coreutils/id.c')
-rw-r--r-- | coreutils/id.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/coreutils/id.c b/coreutils/id.c index 85b288c0c..c7f61532d 100644 --- a/coreutils/id.c +++ b/coreutils/id.c | |||
@@ -68,8 +68,7 @@ extern int id_main(int argc, char **argv) | |||
68 | my_getgrgid(group, getegid()); | 68 | my_getgrgid(group, getegid()); |
69 | } | 69 | } |
70 | } else { | 70 | } else { |
71 | strncpy(user, argv[optind], 8); | 71 | safe_strncpy(user, argv[optind], sizeof(user)); |
72 | user[8] = '\0'; | ||
73 | gid = my_getpwnamegid(user); | 72 | gid = my_getpwnamegid(user); |
74 | my_getgrgid(group, gid); | 73 | my_getgrgid(group, gid); |
75 | } | 74 | } |
@@ -78,12 +77,12 @@ extern int id_main(int argc, char **argv) | |||
78 | grnam=my_getgrnam(group); | 77 | grnam=my_getgrnam(group); |
79 | 78 | ||
80 | if (no_group) { | 79 | if (no_group) { |
81 | if(name_not_number && user) | 80 | if(name_not_number) |
82 | puts(user); | 81 | puts(user); |
83 | else | 82 | else |
84 | printf("%ld\n", pwnam); | 83 | printf("%ld\n", pwnam); |
85 | } else if (no_user) { | 84 | } else if (no_user) { |
86 | if(name_not_number && group) | 85 | if(name_not_number) |
87 | puts(group); | 86 | puts(group); |
88 | else | 87 | else |
89 | printf("%ld\n", grnam); | 88 | printf("%ld\n", grnam); |