Noted by Vericode analysis. Correctly use chroot().
authorJeremy Allison <jra@samba.org>
Fri, 13 Feb 2009 23:02:32 +0000 (15:02 -0800)
committerJeremy Allison <jra@samba.org>
Fri, 13 Feb 2009 23:02:32 +0000 (15:02 -0800)
Jeremy.

source3/smbd/process.c

index 1262d018409bc710fb53586a183c5ed7eacf76a8..0285d00d3d7fab425b957fb8b52daf433348afb5 100644 (file)
@@ -2031,7 +2031,11 @@ void smbd_process(void)
 
        if (*lp_rootdir()) {
                if (chroot(lp_rootdir()) != 0) {
-                       DEBUG(0,("Failed changed root to %s\n", lp_rootdir()));
+                       DEBUG(0,("Failed to change root to %s\n", lp_rootdir()));
+                       exit_server("Failed to chroot()");
+               }
+               if (chdir("/") == -1) {
+                       DEBUG(0,("Failed to chdir to / on chroot to %s\n", lp_rootdir()));
                        exit_server("Failed to chroot()");
                }
                DEBUG(0,("Changed root to %s\n", lp_rootdir()));