summaryrefslogtreecommitdiff
path: root/linux-user/syscall.c
diff options
context:
space:
mode:
authorStefan Brüns <stefan.bruens@rwth-aachen.de>2015-09-02 03:38:53 +0200
committerRiku Voipio <riku.voipio@linaro.org>2015-09-28 16:29:11 +0300
commit59baae9a626396a3a05840279084c4bf2beb8f40 (patch)
tree2a7f5e111a6dba05b2553f8fd1182b863ffb5090 /linux-user/syscall.c
parent84646ee25b68321624ef4768011e91064e4bd440 (diff)
downloadqemu-59baae9a626396a3a05840279084c4bf2beb8f40.tar.gz
linux-user: remove MAX_ARG_PAGES limit
Instead of creating a temporary copy for the whole environment and the arguments, directly copy everything to the target stack. For this to work, we have to change the order of stack creation and copying the arguments. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user/syscall.c')
-rw-r--r--linux-user/syscall.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d1d3eb2d78..7fbaa8bb67 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5808,12 +5808,6 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
}
*q = NULL;
- /* This case will not be caught by the host's execve() if its
- page size is bigger than the target's. */
- if (total_size > MAX_ARG_PAGES * TARGET_PAGE_SIZE) {
- ret = -TARGET_E2BIG;
- goto execve_end;
- }
if (!(p = lock_user_string(arg1)))
goto execve_efault;
ret = get_errno(execve(p, argp, envp));