Re: Segfault in _Unwind_* code called from pthread_exit

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Tue, 31 Oct 2017 11:28:03 +0200
On Mon, Oct 30, 2017 at 10:54:05PM +0100, Andreas Tobler wrote:
> On 30.10.17 15:32, Tijl Coosemans wrote:
> > On Sun, 29 Oct 2017 20:40:46 +0100 Andreas Tobler <andreast-list_at_fgznet.ch> wrote:
> >> Attached what I have for libgcc. It can be applied to gcc5-8, should
> >> give no issues. The mentioned tc from this thread and mine,
> >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82635 do pass.
> >>
> >> What do you think?
> > 
> > Like I said before the return address can be anything.  It could for
> > instance point to some instruction in a random function and then the
> > stack unwinder will think thread_start was called from that function.
> > There's no check you can add to libgcc to distinguish that from a
> > normal valid return address.
> > 
> Maybe not, and most probably I do not understand what is happening. But 
> with my modification I survive the test case.
> 
> If no objections from your or Konstantin's side come up I will commit it 
> to the gcc repo. It will not 'fix' the issue, but it will improve the 
> gcc behavior.

I posted something similar when the discussion thread started. From the
cursory look, your patch is better than mine. The only difference that
makes me wonder is that I used #ifdef KERN_PROC_SIGTRAMP around the
block because I believe gcc has more relaxed policy about supporting
obsoleted OS versions.
Received on Tue Oct 31 2017 - 08:28:30 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:13 UTC