Messages in this thread | | | Date | Sun, 7 Dec 2003 17:19:20 +0100 | From | Alex Riesen <> | Subject | Re: [PATCH] FIx 'noexec' behavior |
| |
On 2003-12-07 13:42:00, wli wrote: > > 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) > > This does not resemble the code I was looking at from current bk. >
probably you were looking at the already fixed code:
ChangeSet@1.1512, 2003-12-06 14:34:40-08:00, torvalds@home.osdl.org +1 -0 Fix the PROT_EXEC breakage on anonymous mmap.
Clean up the tests while at it.
if (file) { if (!file->f_op || !file->f_op->mmap) return -ENODEV;
if ((prot & PROT_EXEC) && (file->f_vfsmnt->mnt_flags & MNT_NOEXEC)) return -EPERM; }
The code I was looking at was the one from Ulrich:
ChangeSet 1.1507 2003/12/04 22:26:06 drepper@redhat.com [PATCH] Fix 'noexec' behaviour
We should not allow mmap() with PROT_EXEC on mounts marked "noexec", since otherwise there is no way for user-supplied executable loaders (like ld.so and emulator environments) to properly honour the "noexec"ness of the target.
if ((prot & PROT_EXEC) && (file->f_vfsmnt->mnt_flags & MNT_NOEXEC)) return -EPERM;
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |