/* * Copyright (C) 2020 Richard Hughes * Copyright (C) 2020 H.J. Lu * * SPDX-License-Identifier: LGPL-2.1+ */ #include "config.h" #include #include #include "fu-cpu-helper-cet-common.h" #ifdef HAVE_SIGACTION static __attribute__((noreturn))void segfault_sigaction (int signal, siginfo_t *si, void *arg) { /* CET did exactly as it should to protect the system */ exit (0); } #endif int main (int argc, char *argv[]) { #ifdef HAVE_SIGACTION struct sigaction sa = { 0 }; sigemptyset (&sa.sa_mask); sa.sa_sigaction = segfault_sigaction; sa.sa_flags = SA_SIGINFO; sigaction (SIGSEGV, &sa, NULL); #endif fu_cpu_helper_cet_testfn1 (); /* this means CET did not work */ return 1; }