Re: [PATCH?] Crash in 2.4.17/ptrace

Andrea Arcangeli (andrea@suse.de)
Tue, 29 Jan 2002 00:47:41 +0100


On Mon, Jan 28, 2002 at 04:19:00PM -0500, Daniel Jacobowitz wrote:
> On Mon, Jan 28, 2002 at 01:03:05PM -0800, Andrew Morton wrote:
> > Oh nice. And it seems that, say, an O_DIRECT write of, say,
> > a mmaped framebuffer will also oops the kernel.
> >
> > Most callers of get_user_pages() aren't prepared for a
> > null page* in the returned array.
> >
> > This patch *may* be sufficient, but perhaps get_user_pages()
> > should just bale out as soon as it finds an invalid page, rather
> > than sticking a null page * into the returned array and continuing.
> >
> > --- linux-2.4.18-pre7/mm/memory.c Fri Dec 21 11:19:23 2001
> > +++ linux-akpm/mm/memory.c Mon Jan 28 12:54:40 2002
> > @@ -453,6 +453,7 @@ int get_user_pages(struct task_struct *t
> > vma = find_extend_vma(mm, start);
> >
> > if ( !vma ||
> > + (vma->vm_flags & VM_IO) ||
> > (!force &&
> > ((write && (!(vma->vm_flags & VM_WRITE))) ||
> > (!write && (!(vma->vm_flags & VM_READ))) ) )) {
>
> Frame buffers aren't reliable marked VM_IO when mapped, currently. Ben

For this reason (and also because there aren't only framebuffers mmapped
out there) I guess it's better to just add (yet another) flag to
get_user_pages, so that it fails with an error when it encounters a
page out of the mem_map array.

> H. said he was going to push a fix for this at least to the PPC trees
> today or tomorrow.
>
> It's cute - fbmem.c goes out of its way to set the flag on some
> architectures and not others. I can't imagine why.
>
> But with that, yes, that should fix it.
>
> > > Of course, I would much rather be able to see the contents of the
> > > framebuffer. Any suggestions?
> >
> > Not with this patch, I'm afraid. For your testing purposes you
> > could just remove the VALID_PAGE() test in mm/memory.c:get_page_map(),
> > and then gdb should be able to get at the framebuffer.
>
> I'm sure there's a good reason to not do that in general. Mind
> enlightening me?
>
> --
> Daniel Jacobowitz Carnegie Mellon University
> MontaVista Software Debian GNU/Linux Developer

Andrea
-
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/