Home | History | Annotate | Download | only in seccomp-bpf

Lines Matching refs:SIGSYS

82   // Set new SIGSYS handler
87 if (sigaction(SIGSYS, &sa, &old_sa) < 0) {
88 SANDBOX_DIE("Failed to configure SIGSYS handler");
93 "Existing signal handler when trying to install SIGSYS. SIGSYS needs "
99 // Unmask SIGSYS
101 if (sigemptyset(&mask) || sigaddset(&mask, SIGSYS) ||
103 SANDBOX_DIE("Failed to configure SIGSYS handler");
128 global_trap_->SigSys(nr, info, void_context);
131 void Trap::SigSys(int nr, siginfo_t* info, void* void_context) {
137 // triggered by a BPF filter. If something else triggered SIGSYS
139 if (nr != SIGSYS || info->si_code != SYS_SECCOMP || !void_context ||
142 // ATI drivers seem to send SIGSYS, so this cannot be FATAL.
145 RAW_LOG(ERROR, "Unexpected SIGSYS received.");
154 // Obtain the siginfo information that is specific to SIGSYS. Unfortunately,
157 struct arch_sigsys sigsys;
158 memcpy(&sigsys, &info->_sifields, sizeof(sigsys));
164 bool sigsys_nr_is_bad = sigsys.nr != static_cast<int>(SECCOMP_SYSCALL(ctx)) &&
165 sigsys.nr != static_cast<int>(SECCOMP_PARM1(ctx));
167 bool sigsys_nr_is_bad = sigsys.nr != static_cast<int>(SECCOMP_SYSCALL(ctx));
171 if (sigsys.ip != reinterpret_cast<void*>(SECCOMP_IP(ctx)) ||
172 sigsys_nr_is_bad || sigsys.arch != SECCOMP_ARCH) {
177 // the sigSys() handler.
178 RAW_SANDBOX_DIE("Sanity checks are failing after receiving SIGSYS.");
184 if (sigsys.nr == __NR_clone) {
221 reinterpret_cast<uint64_t>(sigsys.ip),
309 // system call is made; as system calls could be triggering SIGSYS.