DF-5798 / reexec.c
/* DF-5798 race rig: self-reexecing binary. Place ON the mount being * force-unmounted so every exec installs p_textnch on that mount * (kern_exec.c:549-552 drop/copy) racing unmount_allproc_cb's unsync'd * cache_drop(&p->p_textnch) (vfs_syscalls.c:4777). */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char **argv) { long n = (argc > 1) ? atol(argv[1]) : 2000; char b[32]; if (n > 0) { snprintf(b, sizeof(b), "%ld", n - 1); execl(argv[0], argv[0], b, NULL); perror("execl"); } return 0; } |