diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-02-01 12:30:23 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-02-01 12:30:23 +0100 |
commit | 5997121a51e240c762b4d002d7d16b94ac13d4a1 (patch) | |
tree | ddc874400f580071c386d7f47d8639d2bd281c28 /external | |
parent | 4bd53cd880ecfa9af27735344bf57fb45de20c25 (diff) |
Support signal handlers registered with SA_SIGINFO
...as is the case for external/breakpad's
google_breakpad::ExceptionHandler::SignalHandler (though that one appears to be
careful to check that its additional arguments are not garbage, cf. the
"Sometime, Breakpad runs inside a process where some other buggy code..."
comment in
workdir/UnpackedTarball/breakpad/src/client/linux/handler/exception_handler.cc).
Seen when JunitTest_framework_complex run under ASan/UBSan happened to trigger
an assert,
> soffice.bin: vcl/source/app/dbggui.cxx:47: void ImplDbgTestSolarMutex(): Assertion `ImplGetSVData()->mpDefInst->CheckYieldMutex() && "SolarMutex not locked"' failed.
> sal/osl/unx/signal.cxx:349:13: runtime error: call to function google_breakpad::ExceptionHandler::SignalHandler(int, siginfo_t*, void*) through pointer to incorrect function type 'void (*)(int)'
> (instdir/program/libsofficeapp.so+0xb7eab0): note: google_breakpad::ExceptionHandler::SignalHandler(int, siginfo_t*, void*) defined here
> #0 0x7f6cefc21693 in (anonymous namespace)::callSystemHandler(int) sal/osl/unx/signal.cxx:349:13
> #1 0x7f6cefc1f3e1 in (anonymous namespace)::signalHandlerFunction(int) sal/osl/unx/signal.cxx:422:9
> #2 0x7f6cedbc95bf (/lib64/libpthread.so.0+0x115bf)
> #3 0x7f6ced20491e in __libc_signal_restore_set /usr/src/debug/glibc-2.24-33-ge9e69e4/signal/../sysdeps/unix/sysv/linux/nptl-signals.h:79
> #4 0x7f6ced20491e in __GI_raise /usr/src/debug/glibc-2.24-33-ge9e69e4/signal/../sysdeps/unix/sysv/linux/raise.c:55
> #5 0x7f6ced206519 in __GI_abort /usr/src/debug/glibc-2.24-33-ge9e69e4/stdlib/abort.c:89
> #6 0x7f6ced1fcda6 in __assert_fail_base /usr/src/debug/glibc-2.24-33-ge9e69e4/assert/assert.c:92
> #7 0x7f6ced1fce51 in __GI___assert_fail /usr/src/debug/glibc-2.24-33-ge9e69e4/assert/assert.c:101
> #8 0x7f6cb60cdad5 in ImplDbgTestSolarMutex() vcl/source/app/dbggui.cxx:47:5
> #9 0x7f6cbd337fb9 in DbgTestSolarMutex() tools/source/debug/debug.cxx:74:9
> #10 0x7f6cb3c98abf in vcl::Window::ReleaseGraphics(bool) vcl/source/window/window.cxx:900:5
...
Change-Id: I2625541e0b9e50f9723e61e0cbff0e6c77d0fb9f
Diffstat (limited to 'external')
0 files changed, 0 insertions, 0 deletions