1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:48:12 +00:00
serenity/Libraries/LibC
Sergey Bugaev dd54d13d8d Kernel+LibC: Allow passing mount flags to chroot()
Since a chroot is in many ways similar to a separate root mount, we can also
apply mount flags to it as if it was an actual mount. These flags will apply
whenever the chrooted process accesses its root directory, but not when other
processes access this same directory for the outside. Since it's common to
chdir("/") immediately after chrooting (so that files accessed through the
current directory inherit the same mount flags), this effectively allows one to
apply additional limitations to a process confined inside a chroot.

To this effect, sys$chroot() gains a mount_flags argument (exposed as
chroot_with_mount_flags() in userspace) which can be set to all the same values
as the flags argument for sys$mount(), and additionally to -1 to keep the flags
set for that file system. Note that passing 0 as mount_flags will unset any
flags that may have been set for the file system, not keep them.
2020-01-12 20:02:11 +01:00
..
arpa LibC: fix arpa/inet.h guards 2019-11-16 16:27:48 +01:00
bits LibC: Minor changes to make nasm work 2019-11-09 20:52:34 +01:00
net Kernel: Add SIOCGIFHWADDR ioctl to get the MAC address of an adapter 2019-10-02 18:20:11 +02:00
netinet LibC: move in_addr and sockaddr_in to netinet/in.h 2020-01-02 04:09:56 +01:00
sys Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
alloca.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
assert.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
assert.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
crt0.cpp LibC: Move __cxa_finalize and __cxa_atexit code to their own file 2020-01-01 17:48:41 +01:00
crti.S Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
crtn.S Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
ctype.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
ctype.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
cxxabi.cpp LibC: Move __cxa_finalize and __cxa_atexit code to their own file 2020-01-01 17:48:41 +01:00
dirent.cpp LibC: Add readdir_r for re-entrant directory reading (#648) 2019-10-12 22:35:23 +02:00
dirent.h LibC: Added some missing directory type constants 2019-11-16 12:50:50 +01:00
dlfcn.cpp LibELF+LibC: Split ELFDynamicObject into a Loader + Object 2020-01-04 10:39:04 +01:00
dlfcn.h LibC: Misc additions 2019-10-03 08:18:05 +02:00
endian.h LibC: Oopsie, add the missing semicolons to __bswap32() and __bswap64() 2019-11-17 15:37:46 +01:00
errno.h LibC: sys_errlist should be const char* const 2019-10-17 09:18:01 +02:00
errno_numbers.h LibC: Add some missing errno codes 2019-09-12 18:26:19 +02:00
fcntl.cpp Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
fcntl.h Kernel+LibC: Add O_EXEC, move exec permission checking to VFS::open() 2020-01-11 18:57:53 +01:00
fd_set.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
float.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
getopt.cpp LibC: Ensure getopt error messages end with a newline 2019-09-17 21:56:42 +02:00
getopt.h LibC: Borrow a slightly more functional getopt() 2019-09-06 20:03:16 +02:00
grp.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
grp.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
iconv.h LibC: iconv.h needs stddef.h for size_t 2019-11-10 13:07:51 +01:00
inttypes.h LibC: Add PRIXPTR definition to inttypes.h 2019-12-09 16:33:14 +01:00
ioctl.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
libgen.cpp LibC: Implement dirname() and basename() 2019-10-03 08:23:54 +02:00
libgen.h LibC: Implement dirname() and basename() 2019-10-03 08:23:54 +02:00
limits.h Build: add support for building on OpenBSD 2020-01-02 21:03:53 +01:00
locale.cpp LibC: Added additional fields to lconv struct 2019-11-16 12:50:50 +01:00
locale.h LibC: Added additional fields to lconv struct 2019-11-16 12:50:50 +01:00
Makefile LibELF+LibC: Split ELFDynamicObject into a Loader + Object 2020-01-04 10:39:04 +01:00
malloc.cpp LibC: Prevent assertions in malloc/free at exit time 2019-12-22 10:47:39 +01:00
mallocdefs.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
memory.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
mman.cpp Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
mman.h LibC: Add MAP_FILE for mmap() 2020-01-07 15:35:41 +01:00
mntent.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
mntent.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
netdb.cpp LibC: Remove useless retry loop in connect_to_lookup_server() 2020-01-10 13:52:20 +01:00
netdb.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
poll.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
poll.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
pwd.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
pwd.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
qsort.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
scanf.cpp LibC: Some build fixes for strange platforms 2019-09-29 21:02:13 +02:00
sched.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
sched.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
serenity.cpp LibC+Userland: Add a proper syscall wrapper for purge() 2020-01-02 13:37:02 +01:00
serenity.h Lib: Remove Stopwatch class 2020-01-03 09:10:55 +01:00
setjmp.h LibC: jmp_buf and sigjmp_buf should be distinct types 2019-11-17 21:01:26 +01:00
setjmp.S Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
signal.cpp Kernel+LibC: A lot of the signal handling code was off-by-one. 2019-08-01 11:03:48 +02:00
signal.h LibC: Added missing signal flags 2019-11-16 12:50:50 +01:00
signal_numbers.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
stat.cpp Kernel: Pass path+length to mkdir(), rmdir() and chmod() 2020-01-06 11:15:49 +01:00
stdarg.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
stdbool.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
stddef.h LibC: Tolerate stddef.h being included from the kernel 2019-11-29 14:53:35 +01:00
stdint.h Libc: make library internal includes come from private include namespace 2019-10-11 12:17:05 +02:00
stdio.cpp Kernel: Pass a parameter struct to rename() 2020-01-11 10:36:54 +01:00
stdio.h LibC: implement fgetpos and fsetpos 2019-12-27 23:09:08 +01:00
stdlib.cpp Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
stdlib.h LibC: Oops x2, we can't use "bool" in stdlib.h either 2019-12-26 10:30:34 +01:00
string.cpp LibC: Remove some functions we had two of 2019-12-27 16:55:10 +01:00
string.h LibC: Add strtok_r() and make strtok() a wrapper around it 2019-11-10 21:19:08 +01:00
strings.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
strings.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
syslog.cpp LibC: syslog and lots of compat stuff for it 2019-10-15 09:52:55 +02:00
syslog.h LibC: syslog and lots of compat stuff for it 2019-10-15 09:52:55 +02:00
termcap.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
termcap.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
termios.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
termios.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
time.cpp Kernel+LibC: Publish a "kernel info page" and use it for gettimeofday() 2019-12-15 21:29:26 +01:00
time.h LibC, LibM: Add functions needed to compile python3 2019-11-11 22:04:16 +01:00
times.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
ulimit.cpp LibC: Some build fixes for strange platforms 2019-09-29 21:02:13 +02:00
ulimit.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
unistd.cpp Kernel+LibC: Allow passing mount flags to chroot() 2020-01-12 20:02:11 +01:00
unistd.h Kernel+LibC: Allow passing mount flags to chroot() 2020-01-12 20:02:11 +01:00
utime.cpp Kernel: Make utime() take path+length, remove SmapDisabler 2020-01-06 12:23:30 +01:00
utime.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
utmp.h Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
utsname.cpp Libraries: Create top level directory for libraries. 2019-07-04 16:16:50 +02:00
wchar.cpp LibC, LibM: Add functions needed to compile python3 2019-11-11 22:04:16 +01:00
wchar.h LibC, LibM: Add functions needed to compile python3 2019-11-11 22:04:16 +01:00