// https://syzkaller.appspot.com/bug?id=5d0d657ba9f3a16981aad2a6c50667918de4c955 // 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] = {0x0}; int main(void) { syscall(SYS_mmap, 0x20000000ul, 0x1000000ul, 3ul, 0x1012ul, -1, 0ul, 0ul); intptr_t res = 0; memcpy((void*)0x200000c0, "./file0\000", 8); syscall(SYS_mknodat, 0xffffff9c, 0x200000c0ul, 0x2000ul, 0x1e6e); /* major = 30, minor = 110 */ memcpy((void*)0x20000080, "./file0\000", 8); syscall(SYS_open, 0x20000080ul, 0ul, 0ul); syscall(SYS_setreuid, 0xee00, 0); syscall(SYS_socketpair, 1ul, 5ul, 0, 0ul); syscall(SYS_lchown, 0ul, 0, 0); res = syscall(SYS_getuid); if (res != -1) r[0] = res; syscall(SYS_setreuid, 0xee00, r[0]); return 0; }