diff options
-rw-r--r-- | busybox.h | 6 | ||||
-rw-r--r-- | chmod_chown_chgrp.c | 9 | ||||
-rw-r--r-- | coreutils/id.c | 3 | ||||
-rw-r--r-- | id.c | 3 | ||||
-rw-r--r-- | include/busybox.h | 6 | ||||
-rw-r--r-- | utility.c | 17 |
6 files changed, 16 insertions, 28 deletions
@@ -175,11 +175,11 @@ extern unsigned long parse_number(const char *numstr, | |||
175 | /* These parse entries in /etc/passwd and /etc/group. This is desirable | 175 | /* These parse entries in /etc/passwd and /etc/group. This is desirable |
176 | * for BusyBox since we want to avoid using the glibc NSS stuff, which | 176 | * for BusyBox since we want to avoid using the glibc NSS stuff, which |
177 | * increases target size and is often not needed embedded systems. */ | 177 | * increases target size and is often not needed embedded systems. */ |
178 | extern long my_getpwnam(char *name); | 178 | extern long my_getpwnam(const char *name); |
179 | extern long my_getgrnam(char *name); | 179 | extern long my_getgrnam(const char *name); |
180 | extern void my_getpwuid(char *name, long uid); | 180 | extern void my_getpwuid(char *name, long uid); |
181 | extern void my_getgrgid(char *group, long gid); | 181 | extern void my_getgrgid(char *group, long gid); |
182 | extern long my_getpwnamegid(char *name); | 182 | extern long my_getpwnamegid(const char *name); |
183 | 183 | ||
184 | extern int device_open(char *device, int mode); | 184 | extern int device_open(char *device, int mode); |
185 | 185 | ||
diff --git a/chmod_chown_chgrp.c b/chmod_chown_chgrp.c index a458cf77a..4fc986904 100644 --- a/chmod_chown_chgrp.c +++ b/chmod_chown_chgrp.c | |||
@@ -122,8 +122,6 @@ int chmod_chown_chgrp_main(int argc, char **argv) | |||
122 | gid = strtoul(groupName, &p, 10); /* maybe it's already numeric */ | 122 | gid = strtoul(groupName, &p, 10); /* maybe it's already numeric */ |
123 | if (groupName == p) | 123 | if (groupName == p) |
124 | gid = my_getgrnam(groupName); | 124 | gid = my_getgrnam(groupName); |
125 | if (gid == -1) | ||
126 | goto bad_group; | ||
127 | } else { | 125 | } else { |
128 | groupName = strchr(*argv, '.'); | 126 | groupName = strchr(*argv, '.'); |
129 | if (groupName == NULL) | 127 | if (groupName == NULL) |
@@ -133,8 +131,6 @@ int chmod_chown_chgrp_main(int argc, char **argv) | |||
133 | gid = strtoul(groupName, &p, 10); | 131 | gid = strtoul(groupName, &p, 10); |
134 | if (groupName == p) | 132 | if (groupName == p) |
135 | gid = my_getgrnam(groupName); | 133 | gid = my_getgrnam(groupName); |
136 | if (gid == -1) | ||
137 | goto bad_group; | ||
138 | } else | 134 | } else |
139 | gid = -1; | 135 | gid = -1; |
140 | } | 136 | } |
@@ -145,9 +141,6 @@ int chmod_chown_chgrp_main(int argc, char **argv) | |||
145 | uid = strtoul(*argv, &p, 10); /* if numeric ... */ | 141 | uid = strtoul(*argv, &p, 10); /* if numeric ... */ |
146 | if (*argv == p) | 142 | if (*argv == p) |
147 | uid = my_getpwnam(*argv); | 143 | uid = my_getpwnam(*argv); |
148 | if (uid == -1) { | ||
149 | error_msg_and_die( "unknown user name: %s", *argv); | ||
150 | } | ||
151 | } | 144 | } |
152 | } | 145 | } |
153 | 146 | ||
@@ -162,8 +155,6 @@ int chmod_chown_chgrp_main(int argc, char **argv) | |||
162 | } | 155 | } |
163 | return EXIT_SUCCESS; | 156 | return EXIT_SUCCESS; |
164 | 157 | ||
165 | bad_group: | ||
166 | error_msg_and_die( "unknown group name: %s", groupName); | ||
167 | } | 158 | } |
168 | 159 | ||
169 | /* | 160 | /* |
diff --git a/coreutils/id.c b/coreutils/id.c index 3667b32b2..3f90d55f6 100644 --- a/coreutils/id.c +++ b/coreutils/id.c | |||
@@ -76,9 +76,6 @@ extern int id_main(int argc, char **argv) | |||
76 | 76 | ||
77 | pwnam=my_getpwnam(user); | 77 | pwnam=my_getpwnam(user); |
78 | grnam=my_getgrnam(group); | 78 | grnam=my_getgrnam(group); |
79 | if (gid == -1 || pwnam==-1 || grnam==-1) { | ||
80 | error_msg_and_die("%s: No such user", user); | ||
81 | } | ||
82 | 79 | ||
83 | if (no_group) { | 80 | if (no_group) { |
84 | if(name_not_number && user) | 81 | if(name_not_number && user) |
@@ -76,9 +76,6 @@ extern int id_main(int argc, char **argv) | |||
76 | 76 | ||
77 | pwnam=my_getpwnam(user); | 77 | pwnam=my_getpwnam(user); |
78 | grnam=my_getgrnam(group); | 78 | grnam=my_getgrnam(group); |
79 | if (gid == -1 || pwnam==-1 || grnam==-1) { | ||
80 | error_msg_and_die("%s: No such user", user); | ||
81 | } | ||
82 | 79 | ||
83 | if (no_group) { | 80 | if (no_group) { |
84 | if(name_not_number && user) | 81 | if(name_not_number && user) |
diff --git a/include/busybox.h b/include/busybox.h index 8d4976a4b..53d22115a 100644 --- a/include/busybox.h +++ b/include/busybox.h | |||
@@ -175,11 +175,11 @@ extern unsigned long parse_number(const char *numstr, | |||
175 | /* These parse entries in /etc/passwd and /etc/group. This is desirable | 175 | /* These parse entries in /etc/passwd and /etc/group. This is desirable |
176 | * for BusyBox since we want to avoid using the glibc NSS stuff, which | 176 | * for BusyBox since we want to avoid using the glibc NSS stuff, which |
177 | * increases target size and is often not needed embedded systems. */ | 177 | * increases target size and is often not needed embedded systems. */ |
178 | extern long my_getpwnam(char *name); | 178 | extern long my_getpwnam(const char *name); |
179 | extern long my_getgrnam(char *name); | 179 | extern long my_getgrnam(const char *name); |
180 | extern void my_getpwuid(char *name, long uid); | 180 | extern void my_getpwuid(char *name, long uid); |
181 | extern void my_getgrgid(char *group, long gid); | 181 | extern void my_getgrgid(char *group, long gid); |
182 | extern long my_getpwnamegid(char *name); | 182 | extern long my_getpwnamegid(const char *name); |
183 | 183 | ||
184 | extern int device_open(char *device, int mode); | 184 | extern int device_open(char *device, int mode); |
185 | 185 | ||
@@ -877,29 +877,32 @@ extern int parse_mode(const char *s, mode_t * theMode) | |||
877 | #if defined BB_CHMOD_CHOWN_CHGRP || defined BB_PS || defined BB_LS \ | 877 | #if defined BB_CHMOD_CHOWN_CHGRP || defined BB_PS || defined BB_LS \ |
878 | || defined BB_TAR || defined BB_ID || defined BB_LOGGER \ | 878 | || defined BB_TAR || defined BB_ID || defined BB_LOGGER \ |
879 | || defined BB_LOGNAME || defined BB_WHOAMI || defined BB_SH | 879 | || defined BB_LOGNAME || defined BB_WHOAMI || defined BB_SH |
880 | |||
881 | #if defined BB_CHMOD_CHOWN_CHGRP || defined BB_ID | ||
880 | /* returns a uid given a username */ | 882 | /* returns a uid given a username */ |
881 | long my_getpwnam(char *name) | 883 | long my_getpwnam(const char *name) |
882 | { | 884 | { |
883 | struct passwd *myuser; | 885 | struct passwd *myuser; |
884 | 886 | ||
885 | myuser = getpwnam(name); | 887 | myuser = getpwnam(name); |
886 | if (myuser==NULL) | 888 | if (myuser==NULL) |
887 | return(-1); | 889 | error_msg_and_die("unknown user name: %s", name); |
888 | 890 | ||
889 | return myuser->pw_uid; | 891 | return myuser->pw_uid; |
890 | } | 892 | } |
891 | 893 | ||
892 | /* returns a gid given a group name */ | 894 | /* returns a gid given a group name */ |
893 | long my_getgrnam(char *name) | 895 | long my_getgrnam(const char *name) |
894 | { | 896 | { |
895 | struct group *mygroup; | 897 | struct group *mygroup; |
896 | 898 | ||
897 | mygroup = getgrnam(name); | 899 | mygroup = getgrnam(name); |
898 | if (mygroup==NULL) | 900 | if (mygroup==NULL) |
899 | return(-1); | 901 | error_msg_and_die("unknown group name: %s", name); |
900 | 902 | ||
901 | return (mygroup->gr_gid); | 903 | return (mygroup->gr_gid); |
902 | } | 904 | } |
905 | #endif | ||
903 | 906 | ||
904 | /* gets a username given a uid */ | 907 | /* gets a username given a uid */ |
905 | void my_getpwuid(char *name, long uid) | 908 | void my_getpwuid(char *name, long uid) |
@@ -927,18 +930,18 @@ void my_getgrgid(char *group, long gid) | |||
927 | 930 | ||
928 | #if defined BB_ID | 931 | #if defined BB_ID |
929 | /* gets a gid given a user name */ | 932 | /* gets a gid given a user name */ |
930 | long my_getpwnamegid(char *name) | 933 | long my_getpwnamegid(const char *name) |
931 | { | 934 | { |
932 | struct group *mygroup; | 935 | struct group *mygroup; |
933 | struct passwd *myuser; | 936 | struct passwd *myuser; |
934 | 937 | ||
935 | myuser=getpwnam(name); | 938 | myuser=getpwnam(name); |
936 | if (myuser==NULL) | 939 | if (myuser==NULL) |
937 | error_msg_and_die( "unknown user name: %s", name); | 940 | error_msg_and_die("unknown user name: %s", name); |
938 | 941 | ||
939 | mygroup = getgrgid(myuser->pw_gid); | 942 | mygroup = getgrgid(myuser->pw_gid); |
940 | if (mygroup==NULL) | 943 | if (mygroup==NULL) |
941 | error_msg_and_die( "unknown gid %ld", (long)myuser->pw_gid); | 944 | error_msg_and_die("unknown gid %ld", (long)myuser->pw_gid); |
942 | 945 | ||
943 | return mygroup->gr_gid; | 946 | return mygroup->gr_gid; |
944 | } | 947 | } |