diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2023-03-27 20:31:01 +0000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2023-03-28 15:23:10 -0700 |
commit | a3a67f54f0b4ec98ff2380a792e5bfeebc47d554 (patch) | |
tree | 30fa3eb80bf614fe57a299287168aa13c15a4e15 /linux-user/user-internals.h | |
parent | e506ad6a05c806bbef460a7d014a184ff8d707a6 (diff) | |
download | qemu-a3a67f54f0b4ec98ff2380a792e5bfeebc47d554.zip qemu-a3a67f54f0b4ec98ff2380a792e5bfeebc47d554.tar.gz qemu-a3a67f54f0b4ec98ff2380a792e5bfeebc47d554.tar.bz2 |
linux-user: Pass last not end to probe_guest_base
Pass the address of the last byte of the image, rather than
the first address past the last byte. This avoids overflow
when the last page of the address space is involved.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'linux-user/user-internals.h')
-rw-r--r-- | linux-user/user-internals.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/linux-user/user-internals.h b/linux-user/user-internals.h index 9333db4..c63ef45 100644 --- a/linux-user/user-internals.h +++ b/linux-user/user-internals.h @@ -76,19 +76,19 @@ void fork_end(int child); /** * probe_guest_base: * @image_name: the executable being loaded - * @loaddr: the lowest fixed address in the executable - * @hiaddr: the highest fixed address in the executable + * @loaddr: the lowest fixed address within the executable + * @hiaddr: the highest fixed address within the executable * * Creates the initial guest address space in the host memory space. * - * If @loaddr == 0, then no address in the executable is fixed, - * i.e. it is fully relocatable. In that case @hiaddr is the size - * of the executable. + * If @loaddr == 0, then no address in the executable is fixed, i.e. + * it is fully relocatable. In that case @hiaddr is the size of the + * executable minus one. * * This function will not return if a valid value for guest_base * cannot be chosen. On return, the executable loader can expect * - * target_mmap(loaddr, hiaddr - loaddr, ...) + * target_mmap(loaddr, hiaddr - loaddr + 1, ...) * * to succeed. */ |