aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@bsdimp.com>2021-04-29 18:47:51 -0600
committerWarner Losh <imp@bsdimp.com>2021-09-10 14:13:06 -0600
commit223005f0584ece2868b0b5ac11b06f3984aad569 (patch)
treeded3723a77ebfcffc194b0c7ca6dd26a15c99f65
parentd37853f92f71688cb440e5d18121b97b7ed1c353 (diff)
bsd-user: Fix calculation of size to allocate
It was incorrect to subtract off the size of an unsigned int here. In bsd-user fork, this change was made when moving the arch specific items to specific files. The size in BSD that's available for the arguments does not need a return address subtracted from it. Signed-off-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--bsd-user/bsdload.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/bsd-user/bsdload.c b/bsd-user/bsdload.c
index 5282a7c4f2..379015c744 100644
--- a/bsd-user/bsdload.c
+++ b/bsd-user/bsdload.c
@@ -143,10 +143,9 @@ int loader_exec(const char *filename, char **argv, char **envp,
struct target_pt_regs *regs, struct image_info *infop,
struct bsd_binprm *bprm)
{
- int retval;
- int i;
+ int retval, i;
- bprm->p = TARGET_PAGE_SIZE * MAX_ARG_PAGES - sizeof(unsigned int);
+ bprm->p = TARGET_PAGE_SIZE * MAX_ARG_PAGES;
for (i = 0; i < MAX_ARG_PAGES; i++) { /* clear page-table */
bprm->page[i] = NULL;
}