[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 7/7] Assert arguments in range for guest address spa
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH 7/7] Assert arguments in range for guest address space. |
Date: |
Mon, 15 Feb 2010 11:58:08 -0800 |
We don't expect host addresses within page_set_flags or
page_check_range.
---
exec.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/exec.c b/exec.c
index bb712ec..10673fc 100644
--- a/exec.c
+++ b/exec.c
@@ -2327,6 +2327,14 @@ void page_set_flags(target_ulong start, target_ulong
end, int flags)
{
target_ulong addr, len;
+ /* 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 HOST_LONG_BITS > TARGET_VIRT_ADDR_SPACE_BITS
+ assert(end < (1ul << TARGET_VIRT_ADDR_SPACE_BITS));
+#endif
+ assert(start < end);
+
start = start & TARGET_PAGE_MASK;
end = TARGET_PAGE_ALIGN(end);
@@ -2356,6 +2364,13 @@ 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 HOST_LONG_BITS > TARGET_VIRT_ADDR_SPACE_BITS
+ assert(start < (1ul << TARGET_VIRT_ADDR_SPACE_BITS));
+#endif
+
if (start + len - 1 < start) {
/* We've wrapped around. */
return -1;
--
1.6.6
- [Qemu-devel] [PATCH 4/6] Implement multi-level page tables., (continued)
- [Qemu-devel] [PATCH 4/6] Implement multi-level page tables., Richard Henderson, 2010/02/11
- [Qemu-devel] [PATCH 2/6] Use TARGET_VIRT_ADDR_SPACE_BITS in h2g_valid., Richard Henderson, 2010/02/11
- [Qemu-devel] [PATCH 1/6] Move TARGET_PHYS_ADDR_SPACE_BITS to target-*/cpu.h., Richard Henderson, 2010/02/11
- [Qemu-devel] [PATCH 6/6] linux-user: Fix mmap_find_vma returning invalid addresses., Richard Henderson, 2010/02/11
- [Qemu-devel] [PATCH 5/6] linux-user: Use h2g_valid in qemu_vmalloc., Richard Henderson, 2010/02/11
- [Qemu-devel] [PATCH 0/7] Multi-level page tables and userland mapping fixes, v2, Richard Henderson, 2010/02/15
- [Qemu-devel] [PATCH 1/7] Move TARGET_PHYS_ADDR_SPACE_BITS to target-*/cpu.h., Richard Henderson, 2010/02/15
- [Qemu-devel] [PATCH 3/7] Fix last page errors in page_set_flags and page_check_range., Richard Henderson, 2010/02/15
- [Qemu-devel] [PATCH 7/7] Assert arguments in range for guest address space.,
Richard Henderson <=
- [Qemu-devel] [PATCH 5/7] linux-user: Use h2g_valid in qemu_vmalloc., Richard Henderson, 2010/02/15
- [Qemu-devel] [PATCH 2/7] Use TARGET_VIRT_ADDR_SPACE_BITS in h2g_valid., Richard Henderson, 2010/02/15
- [Qemu-devel] [PATCH 6/7] linux-user: Fix mmap_find_vma returning invalid addresses., Richard Henderson, 2010/02/15
- [Qemu-devel] [PATCH 4/7] Implement multi-level page tables., Richard Henderson, 2010/02/15
- Re: [Qemu-devel] [PATCH 0/6] Multi-level page tables and userland mapping fixes., Paul Brook, 2010/02/28