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 | |
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')
-rw-r--r-- | coreutils/id.c | 7 | ||||
-rw-r--r-- | coreutils/logname.c | 3 | ||||
-rw-r--r-- | coreutils/whoami.c | 3 |
3 files changed, 5 insertions, 8 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); |
diff --git a/coreutils/logname.c b/coreutils/logname.c index 0924b2471..3e10fba6f 100644 --- a/coreutils/logname.c +++ b/coreutils/logname.c | |||
@@ -32,8 +32,7 @@ extern int logname_main(int argc, char **argv) | |||
32 | if (argc > 1) | 32 | if (argc > 1) |
33 | show_usage(); | 33 | show_usage(); |
34 | 34 | ||
35 | my_getpwuid(user, geteuid()); | 35 | if (my_getpwuid(user, geteuid())) { |
36 | if (*user) { | ||
37 | puts(user); | 36 | puts(user); |
38 | return EXIT_SUCCESS; | 37 | return EXIT_SUCCESS; |
39 | } | 38 | } |
diff --git a/coreutils/whoami.c b/coreutils/whoami.c index c3b1140e6..a9d6ecf26 100644 --- a/coreutils/whoami.c +++ b/coreutils/whoami.c | |||
@@ -35,8 +35,7 @@ extern int whoami_main(int argc, char **argv) | |||
35 | if (argc > 1) | 35 | if (argc > 1) |
36 | show_usage(); | 36 | show_usage(); |
37 | 37 | ||
38 | my_getpwuid(user, uid); | 38 | if (my_getpwuid(user, uid)) { |
39 | if (*user) { | ||
40 | puts(user); | 39 | puts(user); |
41 | return EXIT_SUCCESS; | 40 | return EXIT_SUCCESS; |
42 | } | 41 | } |