diff options
| author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-02-27 18:22:03 +0000 |
|---|---|---|
| committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-02-27 18:22:03 +0000 |
| commit | cacea0233bbefdffd1e09283fbc4e385abef19c2 (patch) | |
| tree | 11f7cf83505eb63db8e5dfaa47c5d5b8b81e6176 | |
| parent | 9563d47ea01feb950ed80c8f79b7854e582e47e1 (diff) | |
| download | busybox-w32-cacea0233bbefdffd1e09283fbc4e385abef19c2.tar.gz busybox-w32-cacea0233bbefdffd1e09283fbc4e385abef19c2.tar.bz2 busybox-w32-cacea0233bbefdffd1e09283fbc4e385abef19c2.zip | |
Patch from Vladimir N. Oleynik to save 128 bytes by moving error
checking for some my_* functions to utility.c
git-svn-id: svn://busybox.net/trunk/busybox@1940 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -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 | } |
