diff options
author | Ron Yorston <rmy@pobox.com> | 2012-03-23 11:13:23 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2012-03-23 11:13:23 +0000 |
commit | 40514a0309939f2446f0d4ed9600cad5de396e7f (patch) | |
tree | 0f5f4a57d4bb7893418b5bb11d482858eb17ba8b /debianutils | |
parent | 9db164d6e39050d09f38288c6045cd2a2cbf6d63 (diff) | |
parent | c0cae52662ccced9df19f19ec94238d1b1e3bd71 (diff) | |
download | busybox-w32-40514a0309939f2446f0d4ed9600cad5de396e7f.tar.gz busybox-w32-40514a0309939f2446f0d4ed9600cad5de396e7f.tar.bz2 busybox-w32-40514a0309939f2446f0d4ed9600cad5de396e7f.zip |
Merge commit 'c0cae52662ccced9df19f19ec94238d1b1e3bd71' into merge
Conflicts:
Makefile.flags
scripts/basic/fixdep.c
Diffstat (limited to 'debianutils')
-rw-r--r-- | debianutils/run_parts.c | 3 | ||||
-rw-r--r-- | debianutils/start_stop_daemon.c | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/debianutils/run_parts.c b/debianutils/run_parts.c index 65cbfc338..8f08f6dc6 100644 --- a/debianutils/run_parts.c +++ b/debianutils/run_parts.c | |||
@@ -66,6 +66,7 @@ struct globals { | |||
66 | #define names (G.names) | 66 | #define names (G.names) |
67 | #define cur (G.cur ) | 67 | #define cur (G.cur ) |
68 | #define cmd (G.cmd ) | 68 | #define cmd (G.cmd ) |
69 | #define INIT_G() do { } while (0) | ||
69 | 70 | ||
70 | enum { NUM_CMD = (COMMON_BUFSIZE - sizeof(G)) / sizeof(cmd[0]) - 1 }; | 71 | enum { NUM_CMD = (COMMON_BUFSIZE - sizeof(G)) / sizeof(cmd[0]) - 1 }; |
71 | 72 | ||
@@ -143,6 +144,8 @@ int run_parts_main(int argc UNUSED_PARAM, char **argv) | |||
143 | unsigned n; | 144 | unsigned n; |
144 | int ret; | 145 | int ret; |
145 | 146 | ||
147 | INIT_G(); | ||
148 | |||
146 | #if ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS | 149 | #if ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS |
147 | applet_long_options = runparts_longopts; | 150 | applet_long_options = runparts_longopts; |
148 | #endif | 151 | #endif |
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index bc61959d2..02609c04f 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c | |||
@@ -502,8 +502,16 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) | |||
502 | if (opt & OPT_c) { | 502 | if (opt & OPT_c) { |
503 | struct bb_uidgid_t ugid = { -1, -1 }; | 503 | struct bb_uidgid_t ugid = { -1, -1 }; |
504 | parse_chown_usergroup_or_die(&ugid, chuid); | 504 | parse_chown_usergroup_or_die(&ugid, chuid); |
505 | if (ugid.gid != (gid_t) -1) xsetgid(ugid.gid); | 505 | if (ugid.uid != (uid_t) -1) { |
506 | if (ugid.uid != (uid_t) -1) xsetuid(ugid.uid); | 506 | struct passwd *pw = xgetpwuid(ugid.uid); |
507 | if (ugid.gid != (gid_t) -1) | ||
508 | pw->pw_gid = ugid.gid; | ||
509 | /* initgroups, setgid, setuid: */ | ||
510 | change_identity(pw); | ||
511 | } else if (ugid.gid != (gid_t) -1) { | ||
512 | xsetgid(ugid.gid); | ||
513 | setgroups(1, &ugid.gid); | ||
514 | } | ||
507 | } | 515 | } |
508 | #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY | 516 | #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY |
509 | if (opt & OPT_NICELEVEL) { | 517 | if (opt & OPT_NICELEVEL) { |