summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Henderson2021-02-12 19:48:45 +0100
committerPeter Maydell2021-02-16 12:04:53 +0100
commit114556c533acdaf4c2cdada245890572985b2912 (patch)
tree0befaaccf7e9d6f73a58186de0296e35b922f6ce
parentlinux-user: Explicitly untag memory management syscalls (diff)
downloadqemu-114556c533acdaf4c2cdada245890572985b2912.tar.gz
qemu-114556c533acdaf4c2cdada245890572985b2912.tar.xz
qemu-114556c533acdaf4c2cdada245890572985b2912.zip
linux-user: Use guest_range_valid in access_ok
We're currently open-coding the range check in access_ok; use guest_range_valid when size != 0. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210212184902.1251044-15-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--linux-user/qemu.h9
1 files changed, 3 insertions, 6 deletions
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 9fbc5edc4b..ba122a7903 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -493,12 +493,9 @@ extern unsigned long guest_stack_size;
static inline bool access_ok(int type, abi_ulong addr, abi_ulong size)
{
- if (!guest_addr_valid(addr)) {
- return false;
- }
- if (size != 0 &&
- (addr + size - 1 < addr ||
- !guest_addr_valid(addr + size - 1))) {
+ if (size == 0
+ ? !guest_addr_valid(addr)
+ : !guest_range_valid(addr, size)) {
return false;
}
return page_check_range((target_ulong)addr, size, type) == 0;