Re: [PATCH] parisc: fix kernel crash when unwinding a userspace process (v2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 21 Nov 2008 23:00:06 +0100
Helge Deller <deller@xxxxxx> wrote:

> Andrew Morton wrote:
> > On Fri, 21 Nov 2008 15:16:50 +0100
> > Helge Deller <deller@xxxxxx> wrote:
> > 
> >> Any user on existing parisc 32- and 64bit-kernels can easily crash
> >> the kernel and as such enforce a DSO.
> >> A simple testcase is available here: 
> >>         http://gsyprf10.external.hp.com/~deller/crash.tgz
> >>
> >> The problem is introduced by the fact, that the handle_interruption()
> >> crash handler calls the show_regs() function, which in turn tries
> >> to unwind the stack by calling parisc_show_stack().
> >> Since the stack contains userspace addresses, a try to unwind 
> >> the stack is dangerous and useless and leads to the crash.
> >>
> >> The fix is trivial: For userspace processes
> >> a) avoid to unwind the stack, and
> >> b) avoid to resolve userspace addresses to kernel symbol names.
> >>
> >> While touching this code, I converted print_symbol() to %pS 
> >> printk formats and made parisc_show_stack() static.
> >>
> >> An initial patch for this was written by Kyle McMartin back in August:
> >> http://marc.info/?l=linux-parisc&m=121805168830283&w=2
> >>
> >> Compile and run-tested with a 64bit parisc kernel.
> > 
> > Why has a fix for such a severe bug been floating around unmerged for
> > such a long time?
> 
> I've tried to push it upstream a few times...

OK, well I'll merge it next week unless someone stops me.

> >> Patches for -stable series will follow shortly.
> > 
> > That shouldn't be needed - I'll cc stable on my copy and the stable
> > maintainers should see that and pick it up.  The patch applies cleanly
> > all the way back to 2.6.25.
> 
> Although it may apply to the older stable kernels, I'm currently not 
> sure if this will work then.
> We added the fixes for PA for the '%pS' vsprintf format pretty late. 
> This is probably then a patch which needs backporting to stable as well 
> (if it didn't happened yet):
> 	commit deac93df26b20cf8438339b5935b5f5643bc30c9
> 	Author: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
> 	Date:   Wed Sep 3 20:43:36 2008 -0500
> 	lib: Correct printk %pF to work on all architectures

Oh, OK.  I'll update the stable tag in the patch appropriately.

> Alternatively, I could write a little more simple patch, which is what I 
>   intended initially.

I'd suggest that you send that patch to stable@xxxxxxxxxx in reply to
this one when you see it get dropped from -mm.

Unless someone stops me ;)
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux