From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S264477AbTLGNjN (ORCPT ); Sun, 7 Dec 2003 08:39:13 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264480AbTLGNjN (ORCPT ); Sun, 7 Dec 2003 08:39:13 -0500 Received: from smtp.mailix.net ([216.148.213.132]:25410 "EHLO smtp.mailix.net") by vger.kernel.org with ESMTP id S264477AbTLGNjL (ORCPT ); Sun, 7 Dec 2003 08:39:11 -0500 Date: Sun, 7 Dec 2003 14:39:06 +0100 From: Alex Riesen To: William Lee Irwin III Cc: linux-kernel , Ulrich Drepper Subject: Re: [PATCH] FIx 'noexec' behavior Message-ID: <20031207133906.GA1140@steel.home> Reply-To: Alex Riesen Mail-Followup-To: Alex Riesen , William Lee Irwin III , linux-kernel , Ulrich Drepper Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.5.1i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On 2003-12-07 12:17:37, wli wrote: > You took a fault in do_mmap_pgoff(). ... > + if (file->f_vfsmnt && (prot & PROT_EXEC)) { > + if (file->f_vfsmnt->mnt_flags & MNT_NOEXEC) > + return -EPERM; > + } I had to put a check for 'file' (as Ulrich suggested). Otherwise it deadlocks again. Is it possible for ->f_vfsmnt to be NULL at all? Should it be tested? diff -Nru a/mm/mmap.c b/mm/mmap.c --- a/mm/mmap.c Sun Dec 7 14:37:33 2003 +++ b/mm/mmap.c Sun Dec 7 14:37:33 2003 @@ -478,7 +478,7 @@ if (file && (!file->f_op || !file->f_op->mmap)) return -ENODEV; - if ((prot & PROT_EXEC) && (file->f_vfsmnt->mnt_flags & MNT_NOEXEC)) + if ((prot & PROT_EXEC) && file && (file->f_vfsmnt->mnt_flags & MNT_NOEXEC)) return -EPERM; if (!len)