Open Bug 1407075 Opened 4 years ago Updated 3 years ago

Add an alternative signal stack in our codebase that does not depend on breakpad

Categories

(Toolkit :: Crash Reporting, enhancement)

enhancement
Not set
normal

Tracking

()

Tracking Status
firefox58 --- affected
firefox59 --- ?

People

(Reporter: decoder, Unassigned)

References

Details

Currently, breakpad is calling sigaltstack() to make sure we have an alternative signal stack for processing signals. With the changes in bug 1403668, all of our SIGSEGV handlers will use the alternative signal stack to ensure that they are working even in the case of a stack overflow.

However, in build types that both have the crash reporter disabled and AddressSanitizer (which also sets up an alternative signal stack) not enabled, this will not work and fallback to the old default stack behavior.

As proposed by Ted and Nathan, we should probably factor out the sigaltstack code from breakpad and include it directly in our codebase unconditionally (or in non-asan builds in case that it interferes with ASan).
Ted -- what kind of priority should we put on this? And who should do this work?
Flags: needinfo?(ted)
This is low-priority cleanup. decoder's patch in bug 1403668 fixed the pressing issue where we weren't handling stack overflows properly. The proposed change here would fix build configurations that we don't ship, and could consolidate some duplicated code.
Flags: needinfo?(ted)
Component: General → Crash Reporting
Product: Core → Toolkit
You need to log in before you can comment on or make changes to this bug.