aboutsummaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-20 15:12:58 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-20 15:12:58 +0000
commit9230582315a15dd7b95de9f03c48024858ec935d (patch)
tree5495a94e29baa12c71e33fa8d049131fe572f881 /networking
parentc52248e41ce50bd3fa684d19b2bce4320267dc44 (diff)
downloadbusybox-9230582315a15dd7b95de9f03c48024858ec935d.tar.gz
inetd: use change_identity().
libbb: shrink our internal initgroups(). httpd: remove stray 'else' and 'index_page = "index.html"' function old new delta httpd_main 750 743 -7 inetd_main 2033 2011 -22 bb_internal_initgroups 251 228 -23 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-52) Total: -52 bytes
Diffstat (limited to 'networking')
-rw-r--r--networking/httpd.c6
-rw-r--r--networking/inetd.c13
2 files changed, 8 insertions, 11 deletions
diff --git a/networking/httpd.c b/networking/httpd.c
index 620e680ac..5e6037cbe 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -2340,7 +2340,7 @@ int httpd_main(int argc ATTRIBUTE_UNUSED, char **argv)
#if ENABLE_FEATURE_HTTPD_SETUID
if (opt & OPT_SETUID) {
if (!get_uidgid(&ugid, s_ugid, 1))
- bb_error_msg_and_die("unrecognized user[:group] "
+ bb_error_msg_and_die("unknown user[:group] "
"name '%s'", s_ugid);
}
#endif
@@ -2389,10 +2389,8 @@ int httpd_main(int argc ATTRIBUTE_UNUSED, char **argv)
#if ENABLE_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP
if (!(opt & OPT_INETD))
sighup_handler(0);
- else /* do not install HUP handler in inetd mode */
#endif
- index_page = "index.html";
- parse_conf(default_path_httpd_conf, FIRST_PARSE);
+ parse_conf(default_path_httpd_conf, FIRST_PARSE);
xfunc_error_retval = 0;
if (opt & OPT_INETD)
diff --git a/networking/inetd.c b/networking/inetd.c
index b931aa1e0..5cdfe0a22 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -142,15 +142,15 @@
/* Here's the scoop concerning the user[:group] feature:
* 1) group is not specified:
* a) user = root: NO setuid() or setgid() is done
- * b) other: setgid(primary group as found in passwd)
- * initgroups(name, primary group)
+ * b) other: initgroups(name, primary group)
+ * setgid(primary group as found in passwd)
* setuid()
* 2) group is specified:
* a) user = root: setgid(specified group)
* NO initgroups()
* NO setuid()
- * b) other: setgid(specified group)
- * initgroups(name, specified group)
+ * b) other: initgroups(name, specified group)
+ * setgid(specified group)
* setuid()
*/
@@ -1383,9 +1383,8 @@ int inetd_main(int argc ATTRIBUTE_UNUSED, char **argv)
if (pwd->pw_uid) {
if (sep->se_group)
pwd->pw_gid = grp->gr_gid;
- xsetgid(pwd->pw_gid);
- initgroups(pwd->pw_name, pwd->pw_gid);
- xsetuid(pwd->pw_uid);
+ /* initgroups, setgid, setuid: */
+ change_identity(pwd);
} else if (sep->se_group) {
xsetgid(grp->gr_gid);
setgroups(1, &grp->gr_gid);