// autogenerated by syzkaller (http://github.com/google/syzkaller) #ifndef __NR_mmap #define __NR_mmap 9 #endif #ifndef __NR_socket #define __NR_socket 41 #endif #ifndef __NR_ioctl #define __NR_ioctl 16 #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[6]; void loop() { memset(r, -1, sizeof(r)); r[0] = execute_syscall(__NR_mmap, 0x20000000ul, 0x8f2000ul, 0x3ul, 0x32ul, 0xfffffffffffffffful, 0x0ul, 0, 0, 0); r[1] = execute_syscall(__NR_socket, 0xaul, 0x5ul, 0x84ul, 0, 0, 0, 0, 0, 0); (memcpy((void*)0x208f1fd8, "\x62\x63\x73\x68\x30\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00", 16)); (*(uint64_t*)0x208f1fe8 = (uint64_t)0x2026b000); (memcpy((void*)0x2026b000, "\x15\x00\x00\x00\x6d\x3f\x00\x00\xf4\x78\x5b\x00" "\x00\x00\x06\x00\x41\x00\x00\x00\x05\x00\x11\x00" "\x80\x00\x00\xdf\x22\x68\x8a\x23", 32)); r[5] = execute_syscall(__NR_ioctl, r[1], 0x100000089f0ul, 0x208f1fd8ul, 0, 0, 0, 0, 0, 0); } int main() { loop(); return 0; }