// https://syzkaller.appspot.com/bug?id=0a885a86c3f396f8fb35dadea0d48618bf9eb4c4 // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include int main(void) { syscall(__NR_mmap, /*addr=*/0x1ffffffff000ul, /*len=*/0x1000ul, /*prot=*/0ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); syscall(__NR_mmap, /*addr=*/0x200000000000ul, /*len=*/0x1000000ul, /*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); syscall(__NR_mmap, /*addr=*/0x200001000000ul, /*len=*/0x1000ul, /*prot=*/0ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); const char* reason; (void)reason; if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } // mq_open arguments: [ // name: ptr[in, buffer] { // buffer: {20 01 9c 14 37 b3 cf fc c3 a2 57 29 eb 73 93 a7 c7 21 51 8f // f6 ec a5 66 73 f5 6c 7b 54 87 72 d2 29 72 a7 d6 08 4f 9a 98 f5 32 3a // 22 f4 12 c0 54 2b cd 9f 76 7c 8d d5 b2 44 76 63 8e 93 d8 d6 a0 c5 36 // d2 78 e3 63 3a 00 00 00 00 00 00 00 00 97 97 9c 20 dc aa 76 74 18 ce // 6e e4 03 84 3b 37 fb 84 72 f4 e7 c9 08 98 37 aa 85 fb 05 25 a8 e5 62 // 81 8e 7d e1 72 f7 73 32 82 e5 37 26 62} (length 0x7d) // } // flags: mq_open_flags = 0x41 (8 bytes) // mode: open_mode = 0x80 (8 bytes) // attr: nil // ] // returns fd_mq memcpy((void*)0x200000000180, " \001\234\0247\263\317\374\303\242W)\353s\223\247\307!" "Q\217\366\354\245fs\365l{T\207r\322)r\247\326\bO\232\230\3652:" "\"\364\022\300T+\315\237v|" "\215\325\262Dvc\216\223\330\326\240\3056\322x\343c:" "\000\000\000\000\000\000\000\000\227\227\234 " "\334\252vt\030\316n\344\003\204;" "7\373\204r\364\347\311\b\2307\252\205\373\005%\250\345b\201\216}" "\341r\367s2\202\3457&b", 125); syscall(__NR_mq_open, /*name=*/0x200000000180ul, /*flags=O_CREAT|O_WRONLY*/ 0x41ul, /*mode=S_IWUSR*/ 0x80ul, /*attr=*/0ul); // mq_unlink arguments: [ // name: ptr[in, buffer] { // buffer: {20 01 9c 14 37 b3 cf fc c3 a2 57 29 eb 73 93 a7 c7 21 51 8f // f6 ec a5 66 73 f5 6c 7b 54 87 72 d2 29 72 a7 d6 08 4f 9a 98 f5 32 3a // 22 f4 12 c0 54 2b cd 9f 76 7c 8d d5 b2 44 76 63 8e 93 d8 d6 a0 c5 36 // d2 78 e3 63 3a 00 00 00 00 00 00 00 00 97 97 9c 20 dc aa 76 74 18 ce // 6e e4 03 84 3b 37 fb 84 72 f4 e7 c9 08 98 37 aa 85 fb 05 25 a8 e5 62 // 81 8e 7d e1 72 f7 73 32 82 e5 37 26 62} (length 0x7d) // } // ] memcpy((void*)0x200000000000, " \001\234\0247\263\317\374\303\242W)\353s\223\247\307!" "Q\217\366\354\245fs\365l{T\207r\322)r\247\326\bO\232\230\3652:" "\"\364\022\300T+\315\237v|" "\215\325\262Dvc\216\223\330\326\240\3056\322x\343c:" "\000\000\000\000\000\000\000\000\227\227\234 " "\334\252vt\030\316n\344\003\204;" "7\373\204r\364\347\311\b\2307\252\205\373\005%\250\345b\201\216}" "\341r\367s2\202\3457&b", 125); syscall(__NR_mq_unlink, /*name=*/0x200000000000ul); return 0; }