diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-09-30 20:39:56 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-09-30 20:39:56 +0000 |
commit | 02e6ba91e887bd11146a57185b223582f56f3f09 (patch) | |
tree | cc1954165fe7e6efed1ba0dfa7d5c3aea97fffa5 /coreutils/id.c | |
parent | a6f6e06107e69b79858acaa511c452a0a73cf207 (diff) | |
download | busybox-w32-02e6ba91e887bd11146a57185b223582f56f3f09.tar.gz busybox-w32-02e6ba91e887bd11146a57185b223582f56f3f09.tar.bz2 busybox-w32-02e6ba91e887bd11146a57185b223582f56f3f09.zip |
Vodz' last_patch57:
Hi, Erik.
my_getpw(uid/gid) and applets used it have problem:
if username for uid not found, applets can`t detect it
(but code pessent). Also "%8ld " format is bad:
spaces not required (applets have self format
or spec format (tar applet) and overflow for "id" applet...)
This problem also pressent in stable version.
Patch for unstable in attach.
--w
vodz
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); |