aboutsummaryrefslogtreecommitdiff
path: root/runit
diff options
context:
space:
mode:
Diffstat (limited to 'runit')
-rw-r--r--runit/chpst.c14
-rw-r--r--runit/runsvdir.c3
2 files changed, 7 insertions, 10 deletions
diff --git a/runit/chpst.c b/runit/chpst.c
index 185706089..9b8c99bdd 100644
--- a/runit/chpst.c
+++ b/runit/chpst.c
@@ -405,19 +405,17 @@ int chpst_main(int argc UNUSED_PARAM, char **argv)
405 if (opt & OPT_e) 405 if (opt & OPT_e)
406 edir(env_dir); 406 edir(env_dir);
407 407
408 // FIXME: chrooted jail must have /etc/passwd if we move this after chroot! 408 if (opt & (OPT_u|OPT_U))
409 // OTOH chroot fails for non-roots! 409 xget_uidgid(&ugid, set_user);
410 // SOLUTION: cache uid/gid before chroot, apply uid/gid after 410
411 // chrooted jail must have /etc/passwd if we move this after chroot.
412 // OTOH chroot fails for non-roots.
413 // Solution: cache uid/gid before chroot, apply uid/gid after.
411 if (opt & OPT_U) { 414 if (opt & OPT_U) {
412 xget_uidgid(&ugid, env_user);
413 xsetenv("GID", utoa(ugid.gid)); 415 xsetenv("GID", utoa(ugid.gid));
414 xsetenv("UID", utoa(ugid.uid)); 416 xsetenv("UID", utoa(ugid.uid));
415 } 417 }
416 418
417 if (opt & OPT_u) {
418 xget_uidgid(&ugid, set_user);
419 }
420
421 if (opt & OPT_root) { 419 if (opt & OPT_root) {
422 xchdir(root); 420 xchdir(root);
423 xchroot("."); 421 xchroot(".");
diff --git a/runit/runsvdir.c b/runit/runsvdir.c
index 9495a2a4f..32526cf4c 100644
--- a/runit/runsvdir.c
+++ b/runit/runsvdir.c
@@ -75,8 +75,7 @@ struct globals {
75#define logpipe (G.logpipe ) 75#define logpipe (G.logpipe )
76#define pfd (G.pfd ) 76#define pfd (G.pfd )
77#define stamplog (G.stamplog ) 77#define stamplog (G.stamplog )
78#define INIT_G() do { \ 78#define INIT_G() do { } while (0)
79} while (0)
80 79
81static void fatal2_cannot(const char *m1, const char *m2) 80static void fatal2_cannot(const char *m1, const char *m2)
82{ 81{