// https://syzkaller.appspot.com/bug?id=3e99f9b4ca4807bb541159f3cd1c0776f6598ee8 // autogenerated by syzkaller (http://github.com/google/syzkaller) #define _GNU_SOURCE #include <endian.h> #include <stdint.h> #include <string.h> #include <sys/syscall.h> #include <unistd.h> uint64_t r[2] = {0xffffffffffffffff, 0xffffffffffffffff}; void loop() { long res = 0; res = syscall(__NR_socket, 0x26, 5, 0); if (res != -1) r[0] = res; *(uint16_t*)0x20000300 = 0x26; memcpy((void*)0x20000302, "\x68\x61\x73\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 14); *(uint32_t*)0x20000310 = 0; *(uint32_t*)0x20000314 = 0; memcpy((void*)0x20000318, "\x73\x68\x61\x33\x2d\x35\x31\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 64); syscall(__NR_bind, r[0], 0x20000300, 0x58); res = syscall(__NR_accept, r[0], 0, 0); if (res != -1) r[1] = res; *(uint64_t*)0x20000400 = 0x20000100; *(uint16_t*)0x20000100 = 0x10; *(uint16_t*)0x20000102 = 0; *(uint32_t*)0x20000104 = 0; *(uint32_t*)0x20000108 = 0; *(uint32_t*)0x20000408 = 0xc; *(uint64_t*)0x20000410 = 0x20000440; *(uint64_t*)0x20000440 = 0x20000380; *(uint64_t*)0x20000448 = 0xfffffe7b; *(uint64_t*)0x20000418 = 1; *(uint64_t*)0x20000420 = 0; *(uint64_t*)0x20000428 = 0; *(uint32_t*)0x20000430 = 0; syscall(__NR_sendmsg, r[1], 0x20000400, 0); } int main() { syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0); loop(); return 0; }