]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MEDIUM] fixed call to chroot() during startup
authorWilly Tarreau <w@1wt.eu>
Mon, 15 Oct 2007 16:57:08 +0000 (18:57 +0200)
committerWilly Tarreau <w@1wt.eu>
Mon, 15 Oct 2007 16:57:08 +0000 (18:57 +0200)
It wasn't very wise to chroot() early during the startup. Also,
the exit() was missing if the chroot() failed.

src/haproxy.c

index 7b7a691305806c4bb3045344d04bc480cdb81f24..4e819a326fdd60d0f975a03c51a34d007de5f7bc 100644 (file)
@@ -870,16 +870,6 @@ int main(int argc, char **argv)
                pidfile = fdopen(pidfd, "w");
        }
 
-       /* chroot if needed */
-       if (global.chroot != NULL) {
-               if (chroot(global.chroot) == -1) {
-                       Alert("[%s.main()] Cannot chroot(%s).\n", argv[0], global.chroot);
-                       if (nb_oldpids)
-                               tell_old_pids(SIGTTIN);
-               }
-               chdir("/");
-       }
-
        /* ulimits */
        if (!global.rlimit_nofile)
                global.rlimit_nofile = global.maxsock;
@@ -940,6 +930,17 @@ int main(int argc, char **argv)
                exit(1);
        }
 
+       /* chroot if needed */
+       if (global.chroot != NULL) {
+               if (chroot(global.chroot) == -1) {
+                       Alert("[%s.main()] Cannot chroot(%s).\n", argv[0], global.chroot);
+                       if (nb_oldpids)
+                               tell_old_pids(SIGTTIN);
+                       exit(1);
+               }
+               chdir("/");
+       }
+
        if (nb_oldpids)
                tell_old_pids(oldpids_sig);