linux-user: do prlimit selectively
Analogous to what commit 5dfa88f7
did for setrlimit, this commit
selectively ignores limits for memory-related resources in prlimit64
calls. This is to prevent too restrictive limits from causing QEMU
itself to malfunction.
Signed-off-by: Tobias Koch <tobias.koch@nonterra.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200305202400.27574-1-tobias.koch@nonterra.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
e0d1673d39
commit
055d92f867
|
@ -11871,7 +11871,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
||||||
struct target_rlimit64 *target_rnew, *target_rold;
|
struct target_rlimit64 *target_rnew, *target_rold;
|
||||||
struct host_rlimit64 rnew, rold, *rnewp = 0;
|
struct host_rlimit64 rnew, rold, *rnewp = 0;
|
||||||
int resource = target_to_host_resource(arg2);
|
int resource = target_to_host_resource(arg2);
|
||||||
if (arg3) {
|
|
||||||
|
if (arg3 && (resource != RLIMIT_AS &&
|
||||||
|
resource != RLIMIT_DATA &&
|
||||||
|
resource != RLIMIT_STACK)) {
|
||||||
if (!lock_user_struct(VERIFY_READ, target_rnew, arg3, 1)) {
|
if (!lock_user_struct(VERIFY_READ, target_rnew, arg3, 1)) {
|
||||||
return -TARGET_EFAULT;
|
return -TARGET_EFAULT;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue