зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1403668 - Use SA_ONSTACK for several SIGSEGV handlers. r=ted
MozReview-Commit-ID: IwVYiBF3Ek8 --HG-- extra : rebase_source : 3bbcdee6042aa9e159432c8d0df6f922dba002f1
This commit is contained in:
Родитель
449d985d8e
Коммит
dfac1cc60d
|
@ -282,7 +282,7 @@ MemoryProtectionExceptionHandler::install()
|
|||
|
||||
// Install our new exception handler and save the previous one.
|
||||
struct sigaction faultHandler = {};
|
||||
faultHandler.sa_flags = SA_SIGINFO | SA_NODEFER;
|
||||
faultHandler.sa_flags = SA_SIGINFO | SA_NODEFER | SA_ONSTACK;
|
||||
faultHandler.sa_sigaction = UnixExceptionHandler;
|
||||
sigemptyset(&faultHandler.sa_mask);
|
||||
sExceptionHandlerInstalled = !sigaction(SIGSEGV, &faultHandler, &sPrevSEGVHandler);
|
||||
|
|
|
@ -1617,7 +1617,7 @@ ProcessHasSignalHandlers()
|
|||
|
||||
// Allow handling OOB with signals on all architectures
|
||||
struct sigaction faultHandler;
|
||||
faultHandler.sa_flags = SA_SIGINFO | SA_NODEFER;
|
||||
faultHandler.sa_flags = SA_SIGINFO | SA_NODEFER | SA_ONSTACK;
|
||||
faultHandler.sa_sigaction = WasmFaultHandler<Signal::SegFault>;
|
||||
sigemptyset(&faultHandler.sa_mask);
|
||||
if (sigaction(SIGSEGV, &faultHandler, &sPrevSEGVHandler))
|
||||
|
@ -1626,7 +1626,7 @@ ProcessHasSignalHandlers()
|
|||
# if defined(JS_CODEGEN_ARM)
|
||||
// On Arm Handle Unaligned Accesses
|
||||
struct sigaction busHandler;
|
||||
busHandler.sa_flags = SA_SIGINFO | SA_NODEFER;
|
||||
busHandler.sa_flags = SA_SIGINFO | SA_NODEFER | SA_ONSTACK;
|
||||
busHandler.sa_sigaction = WasmFaultHandler<Signal::BusError>;
|
||||
sigemptyset(&busHandler.sa_mask);
|
||||
if (sigaction(SIGBUS, &busHandler, &sPrevSIGBUSHandler))
|
||||
|
|
|
@ -374,7 +374,7 @@ nsresult nsProfileLock::LockWithSymlink(nsIFile *aLockFile, bool aHaveFcntlLock)
|
|||
struct sigaction act, oldact;
|
||||
#ifdef SA_SIGINFO
|
||||
act.sa_sigaction = FatalSignalHandler;
|
||||
act.sa_flags = SA_SIGINFO;
|
||||
act.sa_flags = SA_SIGINFO | SA_ONSTACK;
|
||||
#else
|
||||
act.sa_handler = FatalSignalHandler;
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче