@@ -2454,17 +2454,10 @@ int page_check_range(target_ulong start, target_ulong len, int flags)
target_ulong end;
target_ulong addr;
- /* This function should never be called with addresses outside the
- guest address space. If this assert fires, it probably indicates
- a missing call to h2g_valid. */
-#if TARGET_ABI_BITS > L1_MAP_ADDR_SPACE_BITS
- assert(start < ((abi_ulong)1 << L1_MAP_ADDR_SPACE_BITS));
-#endif
-
if (len == 0) {
return 0;
}
- if (start + len - 1 < start) {
+ if (!guest_start_len_valid(start, len)) {
/* We've wrapped around. */
return -1;
}
Also remove an assertion on start being in range. The values here can come directly from the guest via a syscall, and so very well may be out of range via plain bug or DoS attack. Signed-off-by: Richard Henderson <rth@twiddle.net> --- exec.c | 9 +-------- 1 files changed, 1 insertions(+), 8 deletions(-)