From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.92] helo=mail.sourceforge.net) by sc8-sf-list1.sourceforge.net with esmtp (Exim 4.30) id 1EE9ia-0006lx-Ma for user-mode-linux-devel@lists.sourceforge.net; Sat, 10 Sep 2005 11:04:48 -0700 Received: from ppp-62-11-72-160.dialup.tiscali.it ([62.11.72.160] helo=zion.home.lan) by mail.sourceforge.net with esmtp (Exim 4.44) id 1EE9iX-0006rI-Qa for user-mode-linux-devel@lists.sourceforge.net; Sat, 10 Sep 2005 11:04:48 -0700 Message-Id: <20050910174629.286344000@zion.home.lan> References: <20050910174452.907256000@zion.home.lan> From: "Paolo 'Blaisorblade' Giarrusso" Content-Disposition: inline; filename=uml-fix-fault-handler-on-write Subject: [uml-devel] [patch 5/7] uml: fix fault handler on write Sender: user-mode-linux-devel-admin@lists.sourceforge.net Errors-To: user-mode-linux-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Id: The user-mode Linux development list List-Post: List-Help: List-Subscribe: , List-Archive: Date: Sat, 10 Sep 2005 19:44:57 +0200 To: Linus Torvalds Cc: Jeff Dike , Paolo Blaisorblade Giarrusso , LKML , user-mode-linux-devel@lists.sourceforge.net The UML fault handler was recently changed to enforce PROT_NONE protections, by requiring VM_READ or VM_EXEC on VMA's. However, by mistake, things were changed such that VM_READ is always checked, also on write faults; so a VMA mapped with only PROT_WRITE is not readable (unless it's prefaulted with MAP_POPULATE or with a write), which is different from i386. Discovered while testing remap_file_pages protection support. Signed-off-by: Paolo 'Blaisorblade' Giarrusso --- arch/um/kernel/trap_kern.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c --- a/arch/um/kernel/trap_kern.c +++ b/arch/um/kernel/trap_kern.c @@ -57,7 +57,8 @@ good_area: if(is_write && !(vma->vm_flags & VM_WRITE)) goto out; - if(!(vma->vm_flags & (VM_READ | VM_EXEC))) + /* Don't require VM_READ|VM_EXEC for write faults! */ + if(!is_write && !(vma->vm_flags & (VM_READ | VM_EXEC))) goto out; do { -- ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel