chpst: simple code shrink
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 16 Sep 2011 09:52:43 +0000 (11:52 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 16 Sep 2011 09:52:43 +0000 (11:52 +0200)
function                                             old     new   delta
chpst_main                                           733     718     -15

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
runit/chpst.c

index 185706089d60b4afa6fbc5125a89dd5a213bac46..44c21a2a48c934802d93237291856652c88c19db 100644 (file)
@@ -405,19 +405,18 @@ int chpst_main(int argc UNUSED_PARAM, char **argv)
        if (opt & OPT_e)
                edir(env_dir);
 
-       // FIXME: chrooted jail must have /etc/passwd if we move this after chroot!
-       // OTOH chroot fails for non-roots!
-       // SOLUTION: cache uid/gid before chroot, apply uid/gid after
+       if (opt & (OPT_u|OPT_U)) {
+               xget_uidgid(&ugid, set_user);
+       }
+
        if (opt & OPT_U) {
-               xget_uidgid(&ugid, env_user);
                xsetenv("GID", utoa(ugid.gid));
                xsetenv("UID", utoa(ugid.uid));
        }
 
-       if (opt & OPT_u) {
-               xget_uidgid(&ugid, set_user);
-       }
-
+       // chrooted jail must have /etc/passwd if we move this after chroot.
+       // OTOH chroot fails for non-roots.
+       // Solution: cache uid/gid before chroot, apply uid/gid after.
        if (opt & OPT_root) {
                xchdir(root);
                xchroot(".");