qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH] Ignore PROT_GROWSDOWN and PROT_GROWSUP


From: Alexander Graf
Subject: [Qemu-devel] [PATCH] Ignore PROT_GROWSDOWN and PROT_GROWSUP
Date: Mon, 02 Jul 2007 14:23:50 +0200
User-agent: Thunderbird 1.5.0.10 (X11/20060911)

In an mprotect call the flags PROT_GROWSDOWN and PROT_GROWSUP can be
defined. Currently qemu returns an EINVAL as soon as one of these is
found, which breaks some programs (especially mplayer).
As far as I can tell it is safe to ignore these flags and just go on as
if nothing happened. To be on the safe side a warning message to the
user is thrown though.

Is there anything wrong with ignoring these? Should they be implemented
properly? Comments appreciated.

Alex

Index: qemu/linux-user/mmap.c
===================================================================
--- qemu.orig/linux-user/mmap.c
+++ qemu/linux-user/mmap.c
@@ -48,8 +48,10 @@ int target_mprotect(target_ulong start, 
     end = start + len;
     if (end < start)
         return -EINVAL;
-    if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC))
-        return -EINVAL;
+    if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC)) {
+       gemu_log("WARNING: dirty hack in mprotect: setting prot (%#x -> 
%#x)\n", prot, prot & (PROT_READ | PROT_WRITE | PROT_EXEC));
+        prot &= (PROT_READ | PROT_WRITE | PROT_EXEC);
+    }
     if (len == 0)
         return 0;
     

reply via email to

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