// https://syzkaller.appspot.com/bug?id=293f403e4f8e9ae86542953973b2fe97c8ca5e62 // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include uint64_t r[1] = {0xffffffffffffffff}; int main(void) { syscall(SYS_mmap, /*addr=*/0x200000000000ul, /*len=*/0x1000000ul, /*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x1012ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); const char* reason; (void)reason; intptr_t res = 0; if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } res = syscall(SYS_socket, /*domain=AF_INET6*/ 0x1cul, /*type=SOCK_STREAM*/ 1ul, /*proto=*/0); if (res != -1) r[0] = res; *(uint8_t*)0x200000000140 = 0x1c; *(uint8_t*)0x200000000141 = 0x1c; *(uint16_t*)0x200000000142 = htobe16(0x4e23); *(uint32_t*)0x200000000144 = 0; memset((void*)0x200000000148, 0, 16); *(uint32_t*)0x200000000158 = 0; syscall(SYS_bind, /*fd=*/r[0], /*addr=*/0x200000000140ul, /*addrlen=*/0x1cul); *(uint8_t*)0x200000000180 = 0x1c; *(uint8_t*)0x200000000181 = 0x1c; *(uint16_t*)0x200000000182 = htobe16(0x4e23); *(uint32_t*)0x200000000184 = 0; memset((void*)0x200000000188, 0, 16); *(uint32_t*)0x200000000198 = 0; syscall(SYS_connect, /*fd=*/r[0], /*addr=*/0x200000000180ul, /*addrlen=*/0x1cul); *(uint64_t*)0x200000000000 = 0x2000000000c0; memcpy((void*)0x2000000000c0, "\x00\xb2\xc0\x6d\x49\xd7\xc1\xc5\x1f\xd9\x14\xaa\x83\x34\x5b\x1a\x55" "\x98\x05\x6a\xf4\x80\xcf\xe1\x9f\x0d\xa4\x7a\xc0\x23\x54\x14", 32); *(uint64_t*)0x200000000008 = 0; *(uint64_t*)0x200000000010 = 0x200000000280; memset((void*)0x200000000280, 0, 1); *(uint32_t*)0x200000000018 = 0xb; *(uint32_t*)0x20000000001c = 0x20; *(uint32_t*)0x200000000020 = 0; *(uint32_t*)0x200000000024 = 0x12; *(uint32_t*)0x200000000028 = 1; *(uint32_t*)0x20000000002c = 0; *(uint8_t*)0x200000000030 = 3; *(uint8_t*)0x200000000031 = 3; memcpy((void*)0x200000000032, "\x4c\xf4\x09\x14\x00\x00\x00\x00", 8); syscall(SYS_setsockopt, /*fd=*/r[0], /*level=*/6, /*optname=*/0x27, /*optval=*/0x200000000000ul, /*optlen=*/0x40ul); memcpy((void*)0x200000000240, "\x3f\x16", 2); syscall(SYS_write, /*fd=*/r[0], /*buf=*/0x200000000240ul, /*count=*/2ul); *(uint32_t*)0x200000000080 = r[0]; *(uint64_t*)0x200000000088 = 0xc332; *(uint64_t*)0x200000000090 = 6; *(uint64_t*)0x200000000098 = 8; syscall(SYS_setsockopt, /*fd=*/r[0], /*level=*/0xffff, /*optname=*/0x1023, /*optval=*/0x200000000080ul, /*optlen=*/0x20ul); return 0; }