qemu: add workarround to fallback to safe mmap_min_addr
authorMartin Jansa <Martin.Jansa@gmail.com>
Thu, 13 May 2010 10:33:59 +0000 (12:33 +0200)
committerMartin Jansa <Martin.Jansa@gmail.com>
Thu, 13 May 2010 11:16:46 +0000 (13:16 +0200)
* in case /proc/sys/vm/mmap_min_addr cannot be read because of security
  of host system

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
recipes/qemu/qemu-0.12.3/fallback.to.safe.mmap_min_addr.patch [new file with mode: 0644]
recipes/qemu/qemu_0.12.3.bb

diff --git a/recipes/qemu/qemu-0.12.3/fallback.to.safe.mmap_min_addr.patch b/recipes/qemu/qemu-0.12.3/fallback.to.safe.mmap_min_addr.patch
new file mode 100644 (file)
index 0000000..fb1080f
--- /dev/null
@@ -0,0 +1,37 @@
+From c313f89c33217ac0e471554dace2144718f86669 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 13 May 2010 12:23:40 +0200
+Subject: [PATCH] linux-user: use default mmap_min_addr 65536 when /proc/sys/vm/mmap_min_addr cannot be read
+
+* 65536 is default at least for ubuntu and fedora.
+---
+ linux-user/main.c |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/linux-user/main.c b/linux-user/main.c
+index 18b52c0..cf2cc59 100644
+--- a/linux-user/main.c
++++ b/linux-user/main.c
+@@ -2728,6 +2728,7 @@
+      * When user has explicitly set the quest base, we skip this
+      * test.
+      */
++#define MMAP_MIN_ADDR_DEFAULT 65536
+     if (!have_guest_base) {
+         FILE *fp;
+@@ -2736,8 +2737,14 @@
+             if (fscanf(fp, "%lu", &tmp) == 1) {
+                 mmap_min_addr = tmp;
+                 qemu_log("host mmap_min_addr=0x%lx\n", mmap_min_addr);
++            } else {
++                qemu_log("cannot read value from /proc/sys/vm/mmap_min_addr, assuming %d\n", MMAP_MIN_ADDR_DEFAULT);
++                mmap_min_addr = MMAP_MIN_ADDR_DEFAULT;
+             }
+             fclose(fp);
++        } else {
++            qemu_log("cannot open /proc/sys/vm/mmap_min_addr for reading, assuming %d\n", MMAP_MIN_ADDR_DEFAULT);
++            mmap_min_addr = MMAP_MIN_ADDR_DEFAULT;
+         }
+     }
+ #endif /* CONFIG_USE_GUEST_BASE */
index 1ce7c58..8bc6747 100644 (file)
@@ -1,7 +1,7 @@
 LICENSE = "GPL"
 DEPENDS = "zlib"
 
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "\
     http://download.savannah.gnu.org/releases/qemu/qemu-${PV}.tar.gz;name=qemu-${PV} \
@@ -20,6 +20,7 @@ SRC_URI = "\
     file://fix_fortify_source_compilation.patch;patch=1 \
     file://3f26c1227e3b08010f2a65379cecf4cb4b5933fa.patch;patch=1 \
     file://c5883be23519921254c6940873ee8db04979c20a.patch;patch=1 \
+    file://fallback.to.safe.mmap_min_addr.patch;patch=1 \
     "
 
 SRC_URI[qemu-0.12.3.sha256sum] = "3ce26f8fb0a59418b2064a26bac4b40ea4e493acbc3df7ad5932635477fade4b"