// autogenerated by syzkaller (http://github.com/google/syzkaller) #ifndef __NR_mmap #define __NR_mmap 9 #endif #ifndef __NR_timer_create #define __NR_timer_create 222 #endif #ifndef __NR_timer_settime #define __NR_timer_settime 223 #endif #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static uintptr_t execute_syscall(int nr, uintptr_t a0, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8) { switch (nr) { default: return syscall(nr, a0, a1, a2, a3, a4, a5); } } long r[12]; void test() { memset(r, -1, sizeof(r)); r[0] = execute_syscall(__NR_mmap, 0x20000000ul, 0xfff000ul, 0x3ul, 0x32ul, 0xfffffffffffffffful, 0x0ul, 0, 0, 0); (*(uint64_t*)0x2047efb0 = (uint64_t)0x0); (*(uint32_t*)0x2047efb8 = (uint32_t)0x0); (*(uint32_t*)0x2047efbc = (uint32_t)0x1); (*(uint32_t*)0x2047efc0 = (uint32_t)0x0); r[5] = execute_syscall(__NR_timer_create, 0x9ul, 0x2047efb0ul, 0x20044000ul, 0, 0, 0, 0, 0, 0); if (r[5] != -1) (r[6] = *(uint32_t*)0x20044000); (*(uint64_t*)0x20aedfe0 = (uint64_t)0x0); (*(uint64_t*)0x20aedfe8 = (uint64_t)0x989680); (*(uint64_t*)0x20aedff0 = (uint64_t)0x800000077359400); (*(uint64_t*)0x20aedff8 = (uint64_t)0x0); r[11] = execute_syscall(__NR_timer_settime, r[6], 0x0ul, 0x20aedfe0ul, 0x20715fe0ul, 0, 0, 0, 0, 0); } int main() { while (1) test(); return 0; }