Le 05/03/2020 à 21:24, Tobias Koch a écrit :
> 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>
> ---
> linux-user/syscall.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 8d27d10807..4f2f9eb12b 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -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 host_rlimit64 rnew, rold, *rnewp = 0;
> 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)) {
> return -TARGET_EFAULT;
> }
>
Applied to my linux-user branch.
Thanks,
Laurent