// https://syzkaller.appspot.com/bug?id=7846e0698b4f280c719f56111620205c475da907 // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include uint64_t r[2] = {0xffffffffffffffff, 0x0}; int main(void) { syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0); intptr_t res = 0; memcpy((void*)0x200005c0, "./file0\000", 8); syscall(__NR_mkdir, 0x200005c0, 0); memcpy((void*)0x20000700, "./file1\000", 8); syscall(__NR_mkdir, 0x20000700, 0); memcpy((void*)0x20000280, "./file1/file0\000", 14); res = syscall(__NR_creat, 0x20000280, 0); if (res != -1) r[0] = res; memcpy((void*)0x20000480, "./file0\000", 8); memcpy((void*)0x200004c0, "overlay\000", 8); memcpy((void*)0x20000d40, "upperdir=./file0,lowerdir=./file1,workdir=./file1", 49); syscall(__NR_mount, 0x400000, 0x20000480, 0x200004c0, 0, 0x20000d40); memcpy((void*)0x20000180, "./file0\000", 8); syscall(__NR_chdir, 0x20000180); res = syscall(__NR_fstat, r[0], 0x20000500); if (res != -1) r[1] = *(uint32_t*)0x20000510; memcpy((void*)0x20000440, "./file0\000", 8); syscall(__NR_open, 0x20000440, 0x400, 0x21); syscall(__NR_fchown, r[0], 0, r[1]); memcpy((void*)0x20000140, "./file0\000", 8); memcpy((void*)0x20000040, "./file1\000", 8); syscall(__NR_link, 0x20000140, 0x20000040); return 0; }