diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2021-04-22 16:13:56 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2021-04-22 18:34:47 +0200 |
| commit | 590921a5bc7ed9ced1d4c5cb517e4b6355813a5d (patch) | |
| tree | 97c874599d315f1185ba254e8b25ccf3f1a485c4 /pkg | |
| parent | 33c28d0389a6b0dd17a5de7c093a011cdadb33b1 (diff) | |
executor: set ctrl-alt-del sysctl to 0
This blocks some of the ways the fuzzer can trigger a reboot.
ctrl-alt-del=0 tells kernel to signal cad_pid instead of rebooting
and setting cad_pid to the current pid (transient "syz-executor setup") makes it a no-op.
For context see: https://groups.google.com/g/syzkaller-bugs/c/WqOY4TiRnFg/m/6P9u8lWZAQAJ
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/csource/generated.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go index 19a3e425e..489f2f3c9 100644 --- a/pkg/csource/generated.go +++ b/pkg/csource/generated.go @@ -9417,11 +9417,14 @@ static void setup_usb() #if SYZ_EXECUTOR || SYZ_SYSCTL #include <errno.h> +#include <stdio.h> #include <string.h> static void setup_sysctl() { - static struct { + char mypid[32]; + snprintf(mypid, sizeof(mypid), "%d", getpid()); + struct { const char* name; const char* data; } files[] = { @@ -9441,6 +9444,8 @@ static void setup_sysctl() {"/proc/sys/kernel/keys/gc_delay", "1"}, {"/proc/sys/vm/nr_overcommit_hugepages", "4"}, {"/proc/sys/vm/oom_kill_allocating_task", "1"}, + {"/proc/sys/kernel/ctrl-alt-del", "0"}, + {"/proc/sys/kernel/cad_pid", mypid}, }; for (size_t i = 0; i < sizeof(files) / sizeof(files[0]); i++) { if (!write_file(files[i].name, files[i].data)) |
