summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2009-02-13 14:59:48 -0800
committerKarolin Seeger <kseeger@samba.org>2009-07-30 09:22:12 +0200
commit767f2dd0eb73f616351d54ea350b8b6de97334b9 (patch)
tree66293a37658cb17264052dbeed75bc9c1032a8cb
parent2a6f8e88150df48271fbe663b5702d725bcac3eb (diff)
downloadsamba-767f2dd0eb73f616351d54ea350b8b6de97334b9.tar.gz
Noted by Vericode analysis. Correctly use chroot().
Jeremy. (cherry picked from commit 3086400b61ee3dda639c5520b539d4ff76e4d9c5)
-rw-r--r--source/smbd/server.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/smbd/server.c b/source/smbd/server.c
index 2ed6792c4a9..9f13c32b78e 100644
--- a/source/smbd/server.c
+++ b/source/smbd/server.c
@@ -1101,8 +1101,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 */