From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38767 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OCYIA-00035G-TK for qemu-devel@nongnu.org; Thu, 13 May 2010 09:17:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OCYI3-0003Pe-Qp for qemu-devel@nongnu.org; Thu, 13 May 2010 09:17:34 -0400 Received: from mail-fx0-f45.google.com ([209.85.161.45]:46269) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OCYI3-0003Om-Lv for qemu-devel@nongnu.org; Thu, 13 May 2010 09:17:27 -0400 Received: by fxm9 with SMTP id 9so129959fxm.4 for ; Thu, 13 May 2010 06:17:25 -0700 (PDT) From: Martin Jansa Date: Thu, 13 May 2010 15:17:25 +0200 Message-Id: <1273756645-11149-1-git-send-email-Martin.Jansa@gmail.com> Subject: [Qemu-devel] [PATCH] linux-user: use default mmap_min_addr 65536 when /proc/sys/vm/mmap_min_addr cannot be read List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Martin Jansa * 65536 is default at least for ubuntu and fedora. * after http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0e1a6ef2dea88101b056b6d9984f3325c5efced3 it's not readable by normal user on many systems * there is patch to enable read-only access again http://git.kernel.org/?p=linux/kernel/git/jmorris/security-testing-2.6.git;a=commitdiff;h=822cceec7248013821d655545ea45d1c6a9d15b3 but that's not applied in many distributions * please consider this workaround Signed-off-by: Martin Jansa --- linux-user/main.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/linux-user/main.c b/linux-user/main.c index 18b52c0..94b6465 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -2891,6 +2891,7 @@ int main(int argc, char **argv, char **envp) * When loading the ELF image to determine whether guest_base * is needed. It is also used in mmap_find_vma. */ +#define MMAP_MIN_ADDR_DEFAULT 65536 { FILE *fp; @@ -2899,8 +2900,14 @@ int main(int argc, char **argv, char **envp) 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; } } -- 1.7.1