From 60776be4160fe7e2178b3790cd43a76d412843b6 Mon Sep 17 00:00:00 2001 From: Albert S Date: Sat, 7 Dec 2019 23:44:55 +0100 Subject: [PATCH] only chdir to / by default when actually chrooting and no dir given --- qssb.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/qssb.h b/qssb.h index 4107b25..302ac7d 100644 --- a/qssb.h +++ b/qssb.h @@ -119,7 +119,7 @@ struct qssb_policy *qssb_init_policy() result->not_dumpable = 1; result->no_new_privs = 1; result->namespace_options = QSSB_UNSHARE_MOUNT | QSSB_UNSHARE_USER; - result->chdir_path = "/"; + result->chdir_path = NULL; result->chroot_target_path = NULL; result->path_policies = NULL; return result; @@ -526,10 +526,16 @@ int qssb_enable_policy(struct qssb_policy *policy) QSSB_LOG_ERROR("chroot: failed to enter %s\n", policy->chroot_target_path); return -1; } + + if(policy->chdir_path == NULL) + { + policy->chdir_path = "/"; + } } - if(chdir(policy->chdir_path) < 0) + if(policy->chdir_path != NULL && chdir(policy->chdir_path) < 0) { + QSSB_LOG_ERROR("chdir to %s failed\n", policy->chdir_path); return -1; }