* shared.h (class pinfo): New members root' and
rootlen'.
* syscalls.cc (chroot): Set new root for process. * path.cc (getcwd_inner): Add parameter to force use of new root from chroot() call. (ischrootpath): New macro. (normalize_posix_path): Care for changed root dir. (normalize_win32_path): Ditto. (getcwd_inner): Ditto. (chdir): Eliminate trailing path component consisting entirely of dots. * fork.cc (fork): Copy pinfo members regarding chroot(). * spawn.cc (_spawnve): Ditto. * dir.cc (opendir): Don't use computed win32 path if chroot() took place.
This commit is contained in:
@@ -102,6 +102,11 @@ class pinfo
|
||||
uid_t real_uid; /* Remains intact on seteuid, replaced by setuid */
|
||||
gid_t real_gid; /* Ditto */
|
||||
|
||||
/* Filled when chroot() is called by the process or one of it's parents.
|
||||
Saved without trailing backslash. */
|
||||
char root[MAX_PATH+1];
|
||||
size_t rootlen;
|
||||
|
||||
/* Non-zero if process was stopped by a signal. */
|
||||
char stopsig;
|
||||
|
||||
|
Reference in New Issue
Block a user