SIGSEGV
case SIGSEGV:
signal(SIGSEGV, handle_signal);
signal(SIGSEGV, handle_signal);
signal(SIGSEGV, catch);
signal(SIGSEGV, segv_handler);
sigaction(SIGSEGV, &sa, NULL);
"expected signal %d, got len %zu\n", SIGSEGV, len);
} else if (got_signal != SIGSEGV) {
"expected signal %d, got %d\n", SIGSEGV, got_signal);
"expected signal %d, got len %zu\n", SIGSEGV, len);
} else if (got_signal != SIGSEGV) {
"expected signal %d, got %d\n", SIGSEGV, got_signal);
sigaction(SIGSEGV, &sa, NULL);
"expected signal %d, got len %zu\n", SIGSEGV, len);
} else if (got_signal != SIGSEGV) {
"expected signal %d, got %d\n", SIGSEGV, got_signal);
"expected signal %d, got len %zu\n", SIGSEGV, len);
} else if (got_signal != SIGSEGV) {
"expected signal %d, got %d\n", SIGSEGV, got_signal);
ATF_REQUIRE(signal(SIGSEGV, sighandler) != SIG_ERR);
ATF_REQUIRE(WEXITSTATUS(status) == SIGSEGV);
ATF_REQUIRE(signal(SIGSEGV, segv) != SIG_ERR);
ATF_REQUIRE(signal(SIGSEGV, map_sighandler) != SIG_ERR);
ATF_REQUIRE(WEXITSTATUS(sta) == SIGSEGV);
ATF_REQUIRE(signal(SIGSEGV, map_sighandler) != SIG_ERR);
ATF_REQUIRE(WEXITSTATUS(sta) == SIGSEGV);
ATF_REQUIRE(signal(SIGSEGV, map_sighandler) != SIG_ERR);
if (WEXITSTATUS(sta) == SIGSEGV)
ATF_REQUIRE(si.si_status == SIGSEGV);
CHECKe(sigaction(SIGSEGV, NULL, &sa));
CHECKe(sigaction(SIGSEGV, &act, NULL));
sigaction(SIGSEGV, &sa, NULL);
sigaction(SIGSEGV, &sa, NULL);
CHECK_EQ(0, sigaction(SIGSEGV, &sa, NULL));
fail += checksig("mprotect read", SIGSEGV, SEGV_ACCERR, p);
fail += checksig("mprotect none", SIGSEGV, SEGV_ACCERR, p + 1);
fail += checksig("munmap", SIGSEGV, SEGV_MAPERR, p + 2);
case SIGSEGV:
sigaction(SIGSEGV, &sa, NULL);
signal(SIGSEGV, sigsegv);
if (sigaction(SIGSEGV, &act, NULL) == -1)
if (signal(SIGSEGV, handler) == SIG_ERR)
if (signal(SIGSEGV, handler) == SIG_ERR)
if (sigaction(SIGSEGV, &act, NULL) == -1)
handle(disaster, SIGABRT, SIGFPE, SIGILL, SIGSEGV,
delset(&mask, SIGABRT, SIGFPE, SIGILL, SIGSEGV, SIGBUS, SIGSYS,
return SIGSEGV;
return SIGSEGV;
i = SIGSEGV;
sig = SIGSEGV;
signal = SIGSEGV;
sig = SIGSEGV;
sd.signo = SIGSEGV;
sd.signo = SIGSEGV;
trapsignal(p, SIGSEGV, 0, SEGV_ACCERR, sv);
trapsignal(p, SIGSEGV, 0, SEGV_MAPERR, sv);
sig = SIGSEGV;
sig = SIGSEGV;
trapsignal(p, SIGSEGV, access_type, SEGV_ACCERR, sv);
trapsignal(p, SIGSEGV, access_type, SEGV_ACCERR, sv);
trapsignal(p, SIGSEGV, access_type, SEGV_MAPERR, sv);
signal = SIGSEGV;
signal = SIGSEGV;
trapsignal(p, SIGSEGV, type &~ T_USER, SEGV_MAPERR, sv);
trapsignal(p, SIGSEGV, type &~ T_USER, SEGV_MAPERR, sv);
sig = result == EACCES ? SIGBUS : SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
sig = result == EACCES ? SIGBUS : SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
return SIGSEGV;
case SIGSEGV:
if (sig != SIGBUS && sig != SIGSEGV)
signal = SIGSEGV;
trapsignal(p, SIGSEGV, access_type, SEGV_MAPERR, sv);
trapsignal(p, SIGSEGV, PROT_EXEC, SEGV_MAPERR, sv);
trapsignal(p, SIGSEGV, PROT_EXEC, SEGV_MAPERR, sv);
trapsignal(p, SIGSEGV, 0, SEGV_MAPERR, sv);
sig = SIGSEGV;
sig = SIGSEGV;
sig = SIGSEGV;
sig = SIGSEGV;
sig = SIGSEGV;
sig = SIGSEGV;
trapsignal(p, SIGSEGV, expevt & ~EXP_USER, SEGV_ACCERR,
trapsignal(p, SIGSEGV, tf->tf_expevt, SEGV_ACCERR, sv);
trapsignal(p, SIGSEGV, tf->tf_expevt, SEGV_MAPERR, sv);
trapsignal(p, SIGSEGV, isload ? PROT_READ : PROT_WRITE,
signal = SIGSEGV;
trapsignal(p, SIGSEGV, PROT_READ | PROT_WRITE, SEGV_MAPERR, sv);
signal = SIGSEGV;
signal = SIGSEGV;
send_sig(SIGSEGV, p->lead_thread, 0);
psignal(p, SIGSEGV);
psignal(curp, SIGSEGV);
case SIGSEGV:
case SIGSEGV:
trapsignal(p, SIGSEGV, 0, SEGV_ACCERR, sv);
case SIGSEGV:
case SIGSEGV:
case SIGSEGV:
ssh_signal(SIGSEGV, SIG_DFL);
raise(SIGSEGV);
SIGNAL(SIGSEGV, bad_signal);