Commit Graph

536 Commits

Author SHA1 Message Date
LI Qing
a8cd5eadba Fix the type conversion in statfs with TryFrom trait 2021-09-22 15:11:48 +08:00
LI Qing
c9083c787c Fix the return error code of file operations 2021-09-22 15:10:59 +08:00
zongmin.gu
85f9333fbe Bump version to 0.24.0 2021-09-15 14:49:25 +08:00
LI Qing
8f4fbba220 Add file POSIX advisory range lock 2021-09-15 11:15:42 +08:00
LI Qing
d24f89fd9c Add getrandom syscall 2021-09-06 19:20:51 +08:00
LI Qing
85d6977118 Modify the statfs on SEFS or UnionFS with ocall 2021-09-05 16:00:00 +08:00
LI Qing
29eed82a7e Add support for the mode of fallocate 2021-09-01 19:24:22 +08:00
Hui, Chunyang
99688183f0 Add vfork support 2021-08-24 11:24:03 +08:00
Hui, Chunyang
88f04c8df9 Add process group implementation and support set/getpgid, set/getpgrp 2021-08-20 08:34:44 +08:00
zongmin.gu
35229d495e Bump to 0.23.7 2021-08-11 16:13:26 +08:00
zongmin.gu
4e3c9c20c4 Fix exec mode memory leak issue 2021-08-10 12:25:57 +08:00
LI Qing
87c1c9a8b3 Add support for umask 2021-08-09 16:50:53 +08:00
zongmin.gu
7c170807bc Bump to 0.23.6 2021-08-06 12:58:56 +08:00
LI Qing
b390ecaae9 Add creat syscall 2021-08-06 10:40:44 +08:00
LI Qing
c5c18ccd6d Fix the event_monitor when updating host file events
When no events happen, the state of host file events will not be reset,
so the event_monitor should always update the state after polling files.
2021-08-06 10:29:25 +08:00
Hui, Chunyang
80a27bc0f9 Reap zombie children when exit
This can fix memory leakage when parent not wait4 children.
2021-08-05 17:52:45 +08:00
LI Qing
865e38258b Add support for '/proc/[pid]/stat'
Many field values are displayed as 0
2021-08-05 16:10:54 +08:00
LI Qing
28c0d55c88 Re-organize the structure of procfs 2021-08-05 16:10:54 +08:00
Hui, Chunyang
b2b86b796a Add support for /dev/fd 2021-08-03 21:30:15 +08:00
LI Qing
dc37995bf0 Add getdents support for procfs's inode 2021-08-03 20:40:07 +08:00
LI Qing
215e8ffbdf Add support for robust futex syscalls 2021-07-30 10:25:24 +08:00
zongmin.gu
22af91b9e7 Bump version to 0.23.5 2021-07-29 14:09:36 +08:00
zongmin.gu
1e03b34a3f Update Cargo lock file to align resolv-conf change 2021-07-29 14:09:36 +08:00
ClawSeven
d35d98d551 Add resolv-conf parser 2021-07-28 10:52:46 +08:00
Hui, Chunyang
1acfec6b12 Add support for fchdir and support cd for fish 2021-07-28 09:11:19 +08:00
LI Qing
a54de67431 Fix the wrong value returned from getcwd
`getcwd` should return the length of buffer filled
2021-07-27 13:05:35 +08:00
Hui, Chunyang
123369d6ce Fix panic for empty file actions 2021-07-26 19:41:54 +08:00
Hui, Chunyang
5963b70b97 Don't allocate extra memory if already aligned 2021-07-23 13:52:31 +08:00
Hui, Chunyang
3612442adc Fix an error when calculating elf memory usage
VMLayout was mistakenly used to calculate the memory usage. This
commit is to fix this and seperate VMLayout "add" and "extend"
methods.
2021-07-23 13:52:31 +08:00
Hui, Chunyang
f9bafa23a4 Fix uninitialized elf memory for loadable segment 2021-07-23 13:52:31 +08:00
Hui, Chunyang
7d54706a8e Add signal check before sigtimedwait return with timeout 2021-07-22 20:24:35 +08:00
zongmin.gu
6adf171bf7 Bump version to 0.23.4 2021-07-21 21:19:31 +08:00
LI Qing
17e4810d3e Add support for "/proc/[pid]/comm" and fix "/proc/[pid]/cmdline" 2021-07-20 19:56:12 +08:00
Hui, Chunyang
e0811a53d2 Bump version to 0.23.3 2021-07-19 19:08:01 +08:00
Shuocheng Wang
3e7fc94ca7 Fix the return value of sched_getaffinity. 2021-07-19 13:23:44 +08:00
ClawSeven
eb07b01ac0 Support timerfd-related syscall 2021-07-16 14:36:27 +08:00
Hui, Chunyang
1e7d258989 Bump version to 0.23.2 2021-07-15 10:03:59 +08:00
LI Qing
1e24dcea6a Modify the protect-integrity tool to print result on file 2021-06-28 21:11:41 +08:00
Hui, Chunyang
6ff50da5be Bump version to 0.23.1 2021-06-25 21:12:42 +08:00
zongmin.gu
f961b786da Bump Occlum version to 0.23.0 2021-06-11 07:41:12 +08:00
Hui, Chunyang
c62b6d4091 Add support for execve
RFC: https://github.com/occlum/occlum/issues/429
2021-06-10 20:59:06 +08:00
Hui, Chunyang
bad2581a25 Add dummy implementation of getsockopt for unix domain socket 2021-06-10 20:50:30 +08:00
Hui, Chunyang
0dc85f8229 Add support for indexing unix domain socket file with inode 2021-06-10 20:50:30 +08:00
zongmin.gu
2cedafeacb Add getgroups syscall 2021-06-10 20:14:37 +08:00
Hui, Chunyang
883f7b259f Add support for ioctl FIONREAD, FIOCLEX, FIONCLEX for pipe and uds file 2021-06-07 08:28:51 +08:00
zongmin.gu
3756f0658c Update rust-toolchain to nightly-2020-10-25 2021-06-04 11:59:11 +08:00
LI Qing
eb046d4241 Add O_TRUNC support in open syscall and rewrite the truncate test 2021-06-04 11:47:38 +08:00
LI Qing
001df6f309 Rewrite getdents syscall 2021-06-04 11:37:19 +08:00
LI Qing
789b57c6f7 Add statfs and fstatfs syscall 2021-06-04 11:36:47 +08:00
zongmin.gu
070bdf6f39 Add sendmmsg syscall 2021-06-03 16:24:34 +08:00
Hui, Chunyang
d15a75fafb Add support for POSIX_SPAWN_SETSIGMASK and POSIX_SPAWN_SETSIGDEF 2021-06-01 20:34:51 +08:00
LI Qing
69c79d8252 Fix a potential deadlock when dereference procfs's symlink 2021-06-01 18:40:41 +08:00
LI Qing
9a76ca1888 Add support for '/proc/[pid]/root' 2021-05-25 12:04:50 +08:00
Hui, Chunyang
6d37dd2d90 Add support for mremap with file-backed memory 2021-05-23 15:14:06 +08:00
Hui, Chunyang
a95e26df42 Add support for WNOHANG of waitpid option 2021-05-10 10:11:24 +08:00
LI Qing
ba720dc346 Add fstat support for pipe 2021-05-08 11:25:08 +08:00
Hui, Chunyang
f77e2c5e89 Add support for ioctl TCGETS/TCSETS 2021-04-29 14:23:01 +08:00
zongmin.gu
47349c8d1b Bump the Occlum version to 0.22.0 2021-04-16 09:34:26 +08:00
Hui, Chunyang
df73dd5d7b Remove CLONE_PARENT_SETTID from clone mandatory flags 2021-04-13 20:22:02 +08:00
Hui, Chunyang
a9574ca22e Fix ELF not running when load address not start from zero 2021-04-08 19:04:50 +08:00
Hui, Chunyang
09bac3d4b5 Fix panic for non-specified exec file path
This commit can prevent panic when user input:
	occlum run /bin
2021-04-08 11:16:55 +08:00
LI Qing
8db6a55696 Mount ramfs at '/dev/shm' 2021-04-01 14:16:07 +08:00
LI Qing
64a980f529 Add time syscall and default localtime support 2021-03-26 16:56:57 +08:00
Hui, Chunyang
ef7b663c4d Export error message when parsing Elf header 2021-03-22 18:53:22 +08:00
LI Qing
d1edb0e218 Release the check for maximum leaf in cpuid exception 2021-03-16 14:24:01 +08:00
Hui, Chunyang
d0331bd397 Add detection for FSGSBASE enablement in PAL 2021-03-11 14:51:52 +08:00
zongmin.gu
17fcaf85e1 Bump version to 0.21.0 2021-03-03 16:07:51 +08:00
zongmin.gu
9fc81fcc87 Update exec mode to handle uRTS crash case 2021-03-03 16:07:51 +08:00
zongmin.gu
0252f98d60 Enable exception test cases under simulation mode 2021-03-03 16:07:51 +08:00
LI Qing
be62e2c65d Add posix_fallocate 2021-03-03 11:06:09 +08:00
LI Qing
3dbf050904 Add sync_all, sync_data and poll for hostfs file 2021-03-02 13:47:02 +08:00
zongmin.gu
7122529b6b Fix affinity array size incorrect issue 2021-03-02 13:45:07 +08:00
LI Qing
7deeccb03b Fix the error of demos with encrypted fs image 2021-03-02 13:25:36 +08:00
LI Qing
c3a02ffc28 Add support for the encrypted fs image 2021-03-01 16:45:01 +08:00
Hui, Chunyang
a2959c17df Reduce redundant mprotect ocall 2021-02-24 14:46:41 +08:00
Hui, Chunyang
79b264a6c8 Add support for Address Space Layout Randomization
ASLR is only enabled on release mode. Also manage the whole process
VM with VMManager.
2021-02-24 14:46:41 +08:00
LI Qing
d7b994bc7d Fix getdents cannot output all entries in a directory 2021-02-24 13:24:54 +08:00
Hui, Chunyang
c4c3315c06 Fix false alarm on non-page-aligned size for mprotect 2021-02-23 20:59:17 +08:00
Hui, Chunyang
1fab79681b Use goblin as elf parser and only load segments on demand
Libos now Only read in headers and needed segments. Also reduce a memory
copy.
2021-02-04 15:02:28 +08:00
zongmin.gu
fdde009e5d Bump Occlum version to 0.20.0 2021-01-22 17:36:53 +08:00
He Sun
1788f94bfe Fix the poll of channel according to gvisor pipe poll test 2021-01-22 13:22:02 +08:00
He Sun
2ea7fc1ad6 Add Unix socket support for poll
A relay notifier that observes the underlying endpoint is added as the
notifier for the socket. It broadcasts to its observers when either end
of the channel has IoEvents.
2021-01-21 23:45:36 +08:00
He Sun
0b829ca087 Fix the return IoEvents of channel poll 2021-01-21 23:45:36 +08:00
He Sun
3101d8fa88 Resolve the nested block of Unix socket
Read, write, connect and accept have both blocking and nonblocking mode.
It may block after the status lock is acquired resulting in potential
deadlock. This commit resolve the deadlock issue.
2021-01-21 23:45:36 +08:00
He Sun
1101bdf9e7 Fix multiplication overflow 2021-01-21 18:18:57 +08:00
LI Qing
0b51d83811 Add ProcFS 2021-01-20 12:42:00 +08:00
LI Qing
8bfef4086f Polish the function names in FS 2021-01-20 12:42:00 +08:00
LI Qing
d6cd89f03b Add DevFS for device files 2021-01-20 11:40:39 +08:00
He Sun
b5ea09066a Add support for libos code coverage
1. Add OCCLUM_COV to conditionally enable gcov profiling for libos Rust
code;
2. Add a makefile target to locally generate the coverage report in html
format.
2021-01-19 15:30:26 +08:00
zongmin.gu
e304c9fa23 Bump version to 0.19.1 2021-01-13 11:09:16 +08:00
LI Qing
6416692a16 Fix the wrong definition of StructuredIoctlArgType 2021-01-08 15:38:37 +08:00
He Sun
7c4c5dd7e5 Fix wrong SIGPIPE number 2021-01-07 12:45:38 +08:00
zongmin.gu
3cb3165f8b Bump Occlum version to 0.19.0 2020-12-19 19:53:31 +08:00
LI Qing
e1c9739577 Remove the flags argument handling in fchmodat syscall
The flags argument of fchmodat syscall is handled by the wrapper
function in libc already, so Occlum does not need to accept this argument.
2020-12-19 19:53:31 +08:00
He Sun
f1e5f574ca Add support for DCAP
1. Five new ioctl commands of /dev/sgx are added for occlum
applications to securely get and verify DCAP quote;
2. Not all the functions of the intel DCAP package are open to
developers to simplify the DCAP usage;
3. The test may only run on the platform with DCAP driver installed;
4. A macro OCCLUM_DISABLE_DCAP is used to separate the DCAP code from
the other code.
5. Skip DCAP test when DCAP driver is not detected or in simulation mode
2020-12-19 19:53:31 +08:00
LI Qing
a53562adea Add support to mount FS at any existing directories 2020-12-17 15:55:40 +08:00
zongmin.gu
ce174e1496 Fix the UDS path too long issue 2020-12-16 23:28:24 +08:00
LI Qing
1a00884e1c Optimize the loading process of the ELF file
1. Load ld.so according to the executable automatically
2. Add the position-independent check for ELF file
2020-12-16 19:21:22 +08:00
LI Qing
318f1e6a4f Add posix_spawn support for Glibc 2020-12-16 19:21:22 +08:00
LI Qing
40a52b56be Initialize a randon number on stack for the stack protector 2020-12-16 19:21:22 +08:00