// https://syzkaller.appspot.com/bug?id=c7ac769bd7ee15549b8a2be188bcee07d98a5357 // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #define __syscall syscall uint64_t r[1] = {0xffffffffffffffff}; int main(void) { syscall(SYS_mmap, 0x20000000ul, 0x1000000ul, 3ul, 0x1012ul, -1, 0ul); intptr_t res = 0; memcpy((void*)0x200001c0, "./bus\000", 6); syscall(SYS_mknod, 0x200001c0ul, 0x2000ul, 0x4086334); /* major = 99, minor = 264244 */ *(uint32_t*)0x200000c0 = 6; *(uint64_t*)0x200000c8 = 0x20000080; *(uint16_t*)0x20000080 = 2; *(uint8_t*)0x20000082 = 2; *(uint8_t*)0x20000083 = 0; *(uint32_t*)0x20000084 = 0; *(uint16_t*)0x20000088 = 0; *(uint8_t*)0x2000008a = 0; *(uint8_t*)0x2000008b = 4; *(uint32_t*)0x2000008c = 0; *(uint16_t*)0x20000090 = 0; *(uint8_t*)0x20000092 = 0; *(uint8_t*)0x20000093 = 0; *(uint32_t*)0x20000094 = 0; *(uint16_t*)0x20000098 = 0; *(uint8_t*)0x2000009a = 0; *(uint8_t*)0x2000009b = 0; *(uint32_t*)0x2000009c = 0; *(uint16_t*)0x200000a0 = 0x8000; *(uint8_t*)0x200000a2 = 0; *(uint8_t*)0x200000a3 = 0; *(uint32_t*)0x200000a4 = 0; *(uint16_t*)0x200000a8 = 0x210; *(uint8_t*)0x200000aa = 0; *(uint8_t*)0x200000ab = 0; *(uint32_t*)0x200000ac = 0; syscall(SYS_ioctl, -1, 0x80104277ul, 0x200000c0ul); *(uint64_t*)0x20001b80 = 0; *(uint32_t*)0x20001b88 = 0; *(uint64_t*)0x20001b90 = 0x20000700; *(uint64_t*)0x20000700 = 0x20000200; memcpy((void*)0x20000200, "\x65\x81\x74\xff\xca\xa0\x82\x5e\x85\x3a\xf9\x91\x5f\x86\xaf\x73\x74" "\x70\x57\xc9\x05\x7d\x7e\x7f\x37\x26\xc1\x62\x08\xb6\x36\xcc\xb7\x3a" "\x65\xa4\x47\xda\x1c\xff\x32\x8f\xf0\x81\xfb\x9e\x3f\x79\xc8\xa5\xe3" "\x99\xc0\x05\x3a\x82\x9c\x9b\xd8\xb7\x19\x23\x60\x21\x1a\x98\xac\x37" "\x91\x1d\x1d\xf0\x1c\xce\x12\xa0\x13\x16\x0c\x01\x7b\x23\xc7\x72\xa2" "\x48\x35\x74\x6c\x21\x31\x29\x0f\xc2\x3f\x0c\xac\xf2\x8e\x48\x80\x1f" "\x61\x51\x97\x35\x4d\xa9\xb4\xdc\x90\x57\xa2\x05\xc6\x7d\x06\xc2\xaf" "\x49\x17\x21\xe1\xa3\x0a\x92\xca\x79\x54\x69\x0b\x3b\x22\x7e\x46\xf8" "\x07\xe0\x67\x28\xc7\xb9\x21\x71\x29\x5c\xcf\x61\x37\x9e\xbd\xa9\x2e" "\x94\x3c\x5f\xf5\xa9\xbb\x6c\x27\xc7\x60\xe9\x56\xe0\xd6\xd2\x3d\x73" "\x88\x1a\x78\x60\xa0\x8c\xc3\x50\x83\xbb\x8e\x47\x94\x25\x8e\xbc\x45" "\xc0\x4e\x5b\xe4\x56\x16\x83\x81\xe2\x4f\x4e\x7a\xf8\x40\x6b\xdc", 203); *(uint64_t*)0x20000708 = 0xcb; *(uint64_t*)0x20000710 = 0; *(uint64_t*)0x20000718 = 0; *(uint64_t*)0x20000720 = 0; *(uint64_t*)0x20000728 = 0; *(uint64_t*)0x20000730 = 0; *(uint64_t*)0x20000738 = 0; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000760 = 0; *(uint64_t*)0x20000768 = 0; *(uint64_t*)0x20000770 = 0; *(uint64_t*)0x20000778 = 0; *(uint64_t*)0x20001b98 = 8; *(uint64_t*)0x20001ba0 = 0; *(uint64_t*)0x20001ba8 = 0x13f8; *(uint32_t*)0x20001bb0 = 0; syscall(SYS_sendmsg, -1, 0x20001b80ul, 9ul); memcpy((void*)0x20000000, "./bus\000", 6); res = syscall(SYS_open, 0x20000000ul, 0ul, 0ul); if (res != -1) r[0] = res; *(uint64_t*)0x20000180 = 0; *(uint32_t*)0x20000188 = 0; *(uint64_t*)0x20000190 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200001a0 = 0; *(uint64_t*)0x200001a8 = 0x210; *(uint32_t*)0x200001b0 = 0; syscall(SYS_sendmsg, -1, 0x20000180ul, 0ul); memcpy((void*)0x20000040, "\x34\xcf\x36\x2b\x3c\xe9\xc9\x3d\x7f", 9); syscall(SYS_write, -1, 0x20000040ul, 9ul); *(uint32_t*)0x20000040 = 1; syscall(SYS_ioctl, r[0], 0x82907003ul, 0x20000040ul); return 0; }