summaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-09-30 20:39:56 +0000
committerEric Andersen <andersen@codepoet.org>2002-09-30 20:39:56 +0000
commit02e6ba91e887bd11146a57185b223582f56f3f09 (patch)
treecc1954165fe7e6efed1ba0dfa7d5c3aea97fffa5 /coreutils
parenta6f6e06107e69b79858acaa511c452a0a73cf207 (diff)
downloadbusybox-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.c7
-rw-r--r--coreutils/logname.c3
-rw-r--r--coreutils/whoami.c3
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 }