Commit Graph

464 Commits

Author SHA1 Message Date
zongmin.gu
36918e42bf Check the buffer address before copy the data from the buffer
This commit fixed an Occlum security issue. The researchers from KU
Leuven (Belgium) and the University of Birmingham (UK) found it and
reported it to Occlum team. Thank you, Jo Van Bulck, Frank Piessens,
Fritz Alder, David Oswald, Jesse Spielman and Sam Thomas.
2021-11-29 14:14:54 +08:00
LI Qing
fc7ba98ded Add ppoll 2021-11-24 16:52:25 +08:00
LI Qing
b61188889d Update mountfs 2021-11-24 10:50:45 +08:00
zongmin.gu
a01b35ff5e Bump version to 0.25.0 2021-11-08 19:15:00 +08:00
Hui, Chunyang
56569e2b8e Fix running user application with too many arguments
Also fix the VM drop process when creating process failure
2021-11-08 11:30:36 +08:00
Hui, Chunyang
fa69b3d0d1 Try reduce vma count on host to prevent panic because of too much mprotect 2021-11-08 11:29:42 +08:00
Hui, Chunyang
d9845235d3 Fix the error code and return logic for mmap failure 2021-10-26 17:51:52 +08:00
LI Qing
9f763f84b1 Add the check of pathname in rename syscall 2021-10-22 18:01:25 +08:00
Zheng, Qi
1eb58a5eb3 Add new_fd range check for dup2/dup3
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-22 17:50:48 +08:00
Zheng, Qi
3c9e172550 Add RLIMIT_RTTIME to make it compatibale with latest Linux kernel
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-22 17:50:48 +08:00
Zheng, Qi
a16ba58b31 Set default RLIMIT_NOFILE to 1024
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-22 17:50:48 +08:00
zongmin.gu
59986df1a5 Bump version to 0.24.2 2021-10-22 17:16:52 +08:00
Hui, Chunyang
1745825e81 Add support for mprotect PROT_GROWSDOWN 2021-10-18 19:49:28 +08:00
Zheng, Qi
0eb3353b7c Return current break if brk failed
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-18 14:10:19 +08:00
LI Qing
030b1c7fdf Fix the memory leak in procfs 2021-10-18 13:43:02 +08:00
Hui, Chunyang
bdb7825607 Add support for mremap 2021-10-17 15:58:29 +08:00
Hui, Chunyang
6dd73c64b5 Improve userspace VM management
Occlum is a single-address-space library OS. Previously, userspace memory are divided for each process.
And all the memory are allocated when the process is created, which leads to a lot of wasted space and
complicated configuration.

In the current implementation, the whole userspace is managed as a memory pool that consists of chunks. There
are two kinds of chunks:
(1) Single VMA chunk: a chunk with only one VMA. Should be owned by exactly one process.
(2) Multi VMA chunk: a chunk with default chunk size and there could be a lot of VMAs in this chunk. Can be used
by different processes.

This design can help to achieve mainly two goals:
(1) Simplify the configuration: Users don't need to configure the process.default_mmap_size anymore. And multiple processes
running in the same Occlum instance can use dramatically different sizes of memory.
(2) Gain better performance: Two-level management(chunks & VMAs) reduces the time for finding, inserting, deleting, and iterating.
2021-10-17 15:58:29 +08:00
zongmin.gu
c6d474bb7b Bump version to 0.24.1 2021-10-01 08:29:25 +08:00
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
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