qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH, v3] mmap: add check if requested memory area fits t


From: Kirill A. Shutemov
Subject: [Qemu-devel] [PATCH, v3] mmap: add check if requested memory area fits target address space
Date: Mon, 10 Nov 2008 09:11:28 +0200

Signed-off-by: Kirill A. Shutemov <address@hidden>
---
 linux-user/mmap.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index acb005d..01fd7e9 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -389,6 +389,16 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int 
prot,
         end = start + len;
         real_end = HOST_PAGE_ALIGN(end);
 
+       /*
+        * Test if requested memory area fits target address space
+        * It can fail only on 64-bit host with 32-bit target.
+        * On any other target/host host mmap() handles this error correctly.
+        */
+        if ((unsigned long)start + len - 1 > (abi_ulong) -1) {
+            errno = EINVAL;
+            goto fail;
+        }
+
         for(addr = real_start; addr < real_end; addr += TARGET_PAGE_SIZE) {
             flg = page_get_flags(addr);
             if (flg & PAGE_RESERVED) {
-- 
1.6.0.2.GIT





reply via email to

[Prev in Thread] Current Thread [Next in Thread]