// https://syzkaller.appspot.com/bug?id=bea1c185923957c5339d5b43bca13e71047453da // autogenerated by syzkaller (http://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include static void test(); void loop() { while (1) { test(); } } #ifndef __NR_setsockopt #define __NR_setsockopt 366 #endif #ifndef __NR_dup #define __NR_dup 41 #endif #ifndef __NR_accept4 #define __NR_accept4 364 #endif #ifndef __NR_sendmsg #define __NR_sendmsg 370 #endif #ifndef __NR_read #define __NR_read 3 #endif #ifndef __NR_mmap #define __NR_mmap 192 #endif #ifndef __NR_socket #define __NR_socket 359 #endif #ifndef __NR_bind #define __NR_bind 361 #endif #undef __NR_mmap #define __NR_mmap __NR_mmap2 long r[3]; void test() { memset(r, -1, sizeof(r)); syscall(__NR_mmap, 0x20000000, 0xfff000, 3, 0x32, -1, 0); r[0] = syscall(__NR_socket, 0x26, 5, 0); *(uint16_t*)0x209f2000 = 0x26; memcpy((void*)0x209f2002, "\x73\x6b\x63\x69\x70\x68\x65\x72\x00\x00\x00\x00\x00\x00", 14); *(uint32_t*)0x209f2010 = 0; *(uint32_t*)0x209f2014 = 0; memcpy((void*)0x209f2018, "\x73\x61\x6c\x73\x61\x32\x30\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\x00", 64); syscall(__NR_bind, r[0], 0x209f2000, 0x58); memcpy((void*)0x204f7000, "\x64\x9c\x47\xad\x46\x39\x0d\x00\x6d\xc8\x00\x00\x00\x9d\x4d\x54", 16); syscall(__NR_setsockopt, r[0], 0x117, 1, 0x204f7000, 0x10); r[1] = syscall(__NR_dup, r[0]); r[2] = syscall(__NR_accept4, r[1], 0, 0, 0); *(uint32_t*)0x203b3fe4 = 0; *(uint32_t*)0x203b3fe8 = 0; *(uint32_t*)0x203b3fec = 0x20946ff8; *(uint32_t*)0x203b3ff0 = 1; *(uint32_t*)0x203b3ff4 = 0; *(uint32_t*)0x203b3ff8 = 0; *(uint32_t*)0x203b3ffc = 0; *(uint32_t*)0x20946ff8 = 0x20ee7fe0; *(uint32_t*)0x20946ffc = 0xfed5; *(uint8_t*)0x20ee7fe0 = 2; *(uint8_t*)0x20ee7fe1 = 0; *(uint8_t*)0x20ee7fe2 = 0; *(uint8_t*)0x20ee7fe3 = 0; *(uint16_t*)0x20ee7fe4 = 2; *(uint16_t*)0x20ee7fe6 = 0; *(uint32_t*)0x20ee7fe8 = 0; *(uint32_t*)0x20ee7fec = 0; *(uint16_t*)0x20ee7ff0 = 0; *(uint16_t*)0x20ee7ff2 = 0x14; *(uint8_t*)0x20ee7ff4 = 0; *(uint8_t*)0x20ee7ff5 = 0; *(uint8_t*)0x20ee7ff6 = 0; *(uint8_t*)0x20ee7ff7 = 0; *(uint16_t*)0x20ee7ff8 = 0; *(uint16_t*)0x20ee7ffa = 0x14; *(uint8_t*)0x20ee7ffc = 0; *(uint8_t*)0x20ee7ffd = 0; *(uint8_t*)0x20ee7ffe = 0; *(uint8_t*)0x20ee7fff = 0; syscall(__NR_sendmsg, r[2], 0x203b3fe4, 0); syscall(__NR_read, r[2], 0x20258000, 0xdbbbdcb6); } int main() { for (;;) { loop(); } }