// https://syzkaller.appspot.com/bug?id=76e1ca0ed8893fcd1c960eb2d322809b83c90ac7 // autogenerated by syzkaller (http://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #ifndef __NR_openat #define __NR_openat 295 #endif #ifndef __NR_ioctl #define __NR_ioctl 54 #endif #ifndef __NR_mmap #define __NR_mmap 192 #endif #undef __NR_mmap #define __NR_mmap __NR_mmap2 long r[1]; void loop() { memset(r, -1, sizeof(r)); syscall(__NR_mmap, 0x20000000, 0xe000, 3, 0x32, -1, 0); memcpy((void*)0x2000d000, "/dev/ion", 9); r[0] = syscall(__NR_openat, 0xffffff9c, 0x2000d000, 0, 0); *(uint8_t*)0x20001000 = 1; *(uint8_t*)0x20001001 = 6; *(uint8_t*)0x20001002 = 8; *(uint8_t*)0x20001003 = 6; *(uint8_t*)0x20001004 = 3; *(uint8_t*)0x20001005 = 0xfc; *(uint32_t*)0x20001008 = 0xffff; *(uint16_t*)0x2000100c = 4; *(uint32_t*)0x20001010 = 3; syscall(__NR_ioctl, -1, 0x800443d3, 0x20001000); syscall(__NR_ioctl, r[0], 0xc0184908, 0x20001000); } int main() { loop(); return 0; }