You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
40 lines
1.5 KiB
--- a/twoprocess.c
|
|
+++ b/twoprocess.c
|
|
@@ -41,7 +41,8 @@
|
|
struct mystr* p_chroot_str,
|
|
struct mystr* p_chdir_str,
|
|
const struct mystr* p_user_str,
|
|
- const struct mystr* p_orig_user_str);
|
|
+ const struct mystr* p_orig_user_str,
|
|
+ int do_chroot);
|
|
|
|
static void
|
|
handle_sigchld(void* duff)
|
|
@@ -454,7 +455,7 @@
|
|
secutil_option |= VSF_SECUTIL_OPTION_ALLOW_WRITEABLE_ROOT;
|
|
}
|
|
calculate_chdir_dir(was_anon, &userdir_str, &chroot_str, &chdir_str,
|
|
- p_user_str, p_orig_user_str);
|
|
+ p_user_str, p_orig_user_str, do_chroot);
|
|
vsf_secutil_change_credentials(p_user_str, &userdir_str, &chroot_str,
|
|
0, secutil_option);
|
|
if (!str_isempty(&chdir_str))
|
|
@@ -522,7 +523,8 @@
|
|
struct mystr* p_chroot_str,
|
|
struct mystr* p_chdir_str,
|
|
const struct mystr* p_user_str,
|
|
- const struct mystr* p_orig_user_str)
|
|
+ const struct mystr* p_orig_user_str,
|
|
+ int do_chroot)
|
|
{
|
|
if (!anon_login)
|
|
{
|
|
@@ -542,7 +544,7 @@
|
|
{
|
|
str_alloc_text(p_chroot_str, tunable_anon_root);
|
|
}
|
|
- else if (!anon_login && tunable_local_root)
|
|
+ else if (!anon_login && tunable_local_root && !do_chroot)
|
|
{
|
|
str_alloc_text(p_chroot_str, tunable_local_root);
|
|
if (tunable_user_sub_token)
|
|
|