// https://syzkaller.appspot.com/bug?id=8f063539d4ecf1faf3132624b57a641e923ee25a // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include uint64_t r[3] = {0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff}; int main(void) { syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0); long res = 0; memcpy((void*)0x20000000, "/dev/kvm", 9); res = syscall(__NR_openat, 0xffffffffffffff9c, 0x20000000, 0, 0); if (res != -1) r[0] = res; res = syscall(__NR_ioctl, r[0], 0xae01, 0); if (res != -1) r[1] = res; res = syscall(__NR_ioctl, r[1], 0xae41, 0); if (res != -1) r[2] = res; *(uint32_t*)0x200004c0 = 0x7b; *(uint32_t*)0x200004c4 = 0; *(uint64_t*)0x200004c8 = 0x40000107; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x200004e0 = 0; *(uint8_t*)0x200004e8 = 0; *(uint8_t*)0x200004e9 = 0; *(uint8_t*)0x200004ea = 0; *(uint8_t*)0x200004eb = 0; *(uint8_t*)0x200004ec = 0; *(uint8_t*)0x200004ed = 0; *(uint8_t*)0x200004ee = 0; *(uint8_t*)0x200004ef = 0; *(uint8_t*)0x200004f0 = 0; *(uint8_t*)0x200004f1 = 0; *(uint8_t*)0x200004f2 = 0; *(uint8_t*)0x200004f3 = 0; *(uint8_t*)0x200004f4 = 0; *(uint8_t*)0x200004f5 = 0; *(uint8_t*)0x200004f6 = 0; *(uint8_t*)0x200004f7 = 0; *(uint8_t*)0x200004f8 = 0; *(uint8_t*)0x200004f9 = 0; *(uint8_t*)0x200004fa = 0; *(uint8_t*)0x200004fb = 0; *(uint8_t*)0x200004fc = 0; *(uint8_t*)0x200004fd = 0; *(uint8_t*)0x200004fe = 0; *(uint8_t*)0x200004ff = 0; *(uint8_t*)0x20000500 = 0; *(uint8_t*)0x20000501 = 0; *(uint8_t*)0x20000502 = 0; *(uint8_t*)0x20000503 = 0; *(uint8_t*)0x20000504 = 0; *(uint8_t*)0x20000505 = 0; *(uint8_t*)0x20000506 = 0; *(uint8_t*)0x20000507 = 0; *(uint8_t*)0x20000508 = 0; *(uint8_t*)0x20000509 = 0; *(uint8_t*)0x2000050a = 0; *(uint8_t*)0x2000050b = 0; *(uint8_t*)0x2000050c = 0; *(uint8_t*)0x2000050d = 0; *(uint8_t*)0x2000050e = 0; *(uint8_t*)0x2000050f = 0; *(uint8_t*)0x20000510 = 0; *(uint8_t*)0x20000511 = 0; *(uint8_t*)0x20000512 = 0; *(uint8_t*)0x20000513 = 0; *(uint8_t*)0x20000514 = 0; *(uint8_t*)0x20000515 = 0; *(uint8_t*)0x20000516 = 0; *(uint8_t*)0x20000517 = 0; *(uint8_t*)0x20000518 = 0; *(uint8_t*)0x20000519 = 0; *(uint8_t*)0x2000051a = 0; *(uint8_t*)0x2000051b = 0; *(uint8_t*)0x2000051c = 0; *(uint8_t*)0x2000051d = 0; *(uint8_t*)0x2000051e = 0; *(uint8_t*)0x2000051f = 0; *(uint8_t*)0x20000520 = 0; *(uint8_t*)0x20000521 = 0; *(uint8_t*)0x20000522 = 0; *(uint8_t*)0x20000523 = 0; *(uint8_t*)0x20000524 = 0; *(uint8_t*)0x20000525 = 0; *(uint8_t*)0x20000526 = 0; *(uint8_t*)0x20000527 = 0; syscall(__NR_ioctl, r[2], 0xc080aebe, 0x200004c0); *(uint16_t*)0x200003c0 = 0xff80; *(uint16_t*)0x200003c2 = 5; *(uint16_t*)0x200003c4 = 0x8000; *(uint32_t*)0x200003c8 = 1; *(uint32_t*)0x200003cc = -1; *(uint32_t*)0x200003d0 = 0xffffffe0; *(uint32_t*)0x200003d4 = 9; *(uint32_t*)0x200003d8 = 0xfffffc00; *(uint32_t*)0x200003dc = 0; syscall(__NR_setsockopt, -1, 0x84, 0xa, 0x200003c0, 0x20); memcpy((void*)0x20000240, "keyring", 8); *(uint8_t*)0x20000080 = 0x73; *(uint8_t*)0x20000081 = 0x79; *(uint8_t*)0x20000082 = 0x7a; *(uint8_t*)0x20000083 = 0; *(uint8_t*)0x20000084 = 0; syscall(__NR_add_key, 0x20000240, 0x20000080, 0, 0, 0xfffffffe); memcpy((void*)0x20000540, "\x74\x65\x61\x6d\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16); *(uint32_t*)0x20000550 = 0; syscall(__NR_ioctl, 0xffffff9c, 0x8933, 0x20000540); return 0; }