diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-09-16 06:22:25 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-09-16 06:22:25 +0000 |
commit | c38678d14b87f8e2d4f0d610d0aa61c656f17539 (patch) | |
tree | 8a08f41faae7672a634f32234dee4b5308cda39c /loginutils/adduser.c | |
parent | 166fa4684f33579277f34d887537c2abefc9deb0 (diff) | |
download | busybox-w32-c38678d14b87f8e2d4f0d610d0aa61c656f17539.tar.gz busybox-w32-c38678d14b87f8e2d4f0d610d0aa61c656f17539.tar.bz2 busybox-w32-c38678d14b87f8e2d4f0d610d0aa61c656f17539.zip |
Apply vodz' last_patch52
Diffstat (limited to 'loginutils/adduser.c')
-rw-r--r-- | loginutils/adduser.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/loginutils/adduser.c b/loginutils/adduser.c index 7455f23a6..3485611cc 100644 --- a/loginutils/adduser.c +++ b/loginutils/adduser.c | |||
@@ -110,18 +110,20 @@ static int passwd_study(const char *filename, struct passwd *p) | |||
110 | 110 | ||
111 | static void addgroup_wrapper(const char *login, gid_t gid) | 111 | static void addgroup_wrapper(const char *login, gid_t gid) |
112 | { | 112 | { |
113 | char *cmd = xmalloc(strlen(login)+32); | 113 | char *cmd; |
114 | 114 | ||
115 | sprintf(cmd, "addgroup -g %d %s", gid, login); | 115 | bb_asprintf(&cmd, "addgroup -g %d %s", gid, login); |
116 | system(cmd); | 116 | system(cmd); |
117 | free(cmd); | 117 | free(cmd); |
118 | } | 118 | } |
119 | 119 | ||
120 | static void passwd_wrapper(const char *login) __attribute__ ((noreturn)); | ||
121 | |||
120 | static void passwd_wrapper(const char *login) | 122 | static void passwd_wrapper(const char *login) |
121 | { | 123 | { |
122 | static const char prog[] = "passwd"; | 124 | static const char prog[] = "passwd"; |
123 | execlp(prog, prog, login, NULL); | 125 | execlp(prog, prog, login, NULL); |
124 | error_msg_and_die("Failed to execute 'passwd', you must set the password for '%s' manually", login); | 126 | error_msg_and_die("Failed to execute '%s', you must set the password for '%s' manually", prog, login); |
125 | } | 127 | } |
126 | 128 | ||
127 | /* putpwent(3) remix */ | 129 | /* putpwent(3) remix */ |
@@ -137,7 +139,6 @@ static int adduser(const char *filename, struct passwd *p) | |||
137 | /* make sure everything is kosher and setup uid && gid */ | 139 | /* make sure everything is kosher and setup uid && gid */ |
138 | passwd = wfopen(filename, "a"); | 140 | passwd = wfopen(filename, "a"); |
139 | if (passwd == NULL) { | 141 | if (passwd == NULL) { |
140 | /* return -1; */ | ||
141 | return 1; | 142 | return 1; |
142 | } | 143 | } |
143 | fseek(passwd, 0, SEEK_END); | 144 | fseek(passwd, 0, SEEK_END); |
@@ -153,13 +154,11 @@ static int adduser(const char *filename, struct passwd *p) | |||
153 | error_msg("group name %s already in use", p->pw_name); | 154 | error_msg("group name %s already in use", p->pw_name); |
154 | else | 155 | else |
155 | error_msg("generic error."); | 156 | error_msg("generic error."); |
156 | /* return -1; */ | ||
157 | return 1; | 157 | return 1; |
158 | } | 158 | } |
159 | 159 | ||
160 | /* add to passwd */ | 160 | /* add to passwd */ |
161 | if (putpwent(p, passwd) == -1) { | 161 | if (putpwent(p, passwd) == -1) { |
162 | /* return -1; */ | ||
163 | return 1; | 162 | return 1; |
164 | } | 163 | } |
165 | fclose(passwd); | 164 | fclose(passwd); |
@@ -169,7 +168,6 @@ static int adduser(const char *filename, struct passwd *p) | |||
169 | if (shadow_enabled) { | 168 | if (shadow_enabled) { |
170 | shadow = wfopen(shadow_file, "a"); | 169 | shadow = wfopen(shadow_file, "a"); |
171 | if (shadow == NULL) { | 170 | if (shadow == NULL) { |
172 | /* return -1; */ | ||
173 | return 1; | 171 | return 1; |
174 | } | 172 | } |
175 | fseek(shadow, 0, SEEK_END); | 173 | fseek(shadow, 0, SEEK_END); |
@@ -206,8 +204,6 @@ static int adduser(const char *filename, struct passwd *p) | |||
206 | } | 204 | } |
207 | /* interactively set passwd */ | 205 | /* interactively set passwd */ |
208 | passwd_wrapper(p->pw_name); | 206 | passwd_wrapper(p->pw_name); |
209 | |||
210 | return 0; | ||
211 | } | 207 | } |
212 | 208 | ||
213 | 209 | ||
@@ -293,4 +289,4 @@ int adduser_main(int argc, char **argv) | |||
293 | return adduser(passwd_file, &pw); | 289 | return adduser(passwd_file, &pw); |
294 | } | 290 | } |
295 | 291 | ||
296 | /* $Id: adduser.c,v 1.3 2002/07/16 23:50:05 sandman Exp $ */ | 292 | /* $Id: adduser.c,v 1.4 2002/09/16 06:22:24 andersen Exp $ */ |