From cf0b9c7f832d0ff0cbff880c173e21479b48d983 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 13 Feb 2009 15:06:13 -0800 Subject: [PATCH] Noted by Vericode analysis. Correctly use chroot(). Jeremy. (cherry picked from commit c604236558b0be1b8a8539c7823e22f8e5eea55b) --- source/smbd/server.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/smbd/server.c b/source/smbd/server.c index 34a3321990c..e9141181a50 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -1379,8 +1379,15 @@ extern void build_options(bool screen); } if (*lp_rootdir()) { - if (sys_chroot(lp_rootdir()) == 0) - DEBUG(2,("Changed root to %s\n", lp_rootdir())); + if (sys_chroot(lp_rootdir()) != 0) { + DEBUG(0,("Failed to change root to %s\n", lp_rootdir())); + exit(1); + } + if (chdir("/") == -1) { + DEBUG(0,("Failed to chdir to / on chroot to %s\n", lp_rootdir())); + exit(1); + } + DEBUG(0,("Changed root to %s\n", lp_rootdir())); } /* Setup oplocks */ -- 2.11.4.GIT