| // BUG: using __this_cpu_read() in preemptible [ADDR] code: syzkaller4NUM/3317 |
| // https://syzkaller.appspot.com/bug?id=1eb7faf739765b846cdd96f17f511d9fb94a13c3 |
| // status:invalid |
| // autogenerated by syzkaller (http://github.com/google/syzkaller) |
| |
| #define _GNU_SOURCE |
| |
| #include <sys/syscall.h> |
| #include <unistd.h> |
| |
| #include <stdint.h> |
| #include <string.h> |
| |
| static void test(); |
| |
| void loop() |
| { |
| while (1) { |
| test(); |
| } |
| } |
| |
| #ifndef __NR_mmap |
| #define __NR_mmap 192 |
| #endif |
| #ifndef __NR_socket |
| #define __NR_socket 359 |
| #endif |
| #ifndef __NR_sendmsg |
| #define __NR_sendmsg 370 |
| #endif |
| #undef __NR_mmap |
| #define __NR_mmap __NR_mmap2 |
| |
| long r[60]; |
| void test() |
| { |
| memset(r, -1, sizeof(r)); |
| r[0] = syscall(__NR_mmap, 0x20000000ul, 0xfff000ul, 0x3ul, 0x32ul, |
| 0xfffffffffffffffful, 0x0ul); |
| r[1] = syscall(__NR_socket, 0xful, 0x3ul, 0x2ul); |
| *(uint32_t*)0x208befc8 = (uint32_t)0x0; |
| *(uint32_t*)0x208befcc = (uint32_t)0x0; |
| *(uint32_t*)0x208befd0 = (uint32_t)0x208feff0; |
| *(uint32_t*)0x208befd4 = (uint32_t)0x1; |
| *(uint32_t*)0x208befd8 = (uint32_t)0x0; |
| *(uint32_t*)0x208befdc = (uint32_t)0x0; |
| *(uint32_t*)0x208befe0 = (uint32_t)0x0; |
| *(uint32_t*)0x208feff0 = (uint32_t)0x20333f88; |
| *(uint32_t*)0x208feff4 = (uint32_t)0x50; |
| *(uint8_t*)0x20333f88 = (uint8_t)0x2; |
| *(uint8_t*)0x20333f89 = (uint8_t)0x3; |
| *(uint8_t*)0x20333f8a = (uint8_t)0x0; |
| *(uint8_t*)0x20333f8b = (uint8_t)0x9; |
| *(uint16_t*)0x20333f8c = (uint16_t)0xa; |
| *(uint16_t*)0x20333f8e = (uint16_t)0x0; |
| *(uint32_t*)0x20333f90 = (uint32_t)0x0; |
| *(uint32_t*)0x20333f94 = (uint32_t)0x0; |
| *(uint16_t*)0x20333f98 = (uint16_t)0x3; |
| *(uint16_t*)0x20333f9a = (uint16_t)0x6; |
| *(uint8_t*)0x20333f9c = (uint8_t)0x0; |
| *(uint8_t*)0x20333f9d = (uint8_t)0x0; |
| *(uint16_t*)0x20333f9e = (uint16_t)0x0; |
| *(uint16_t*)0x20333fa0 = (uint16_t)0x2; |
| *(uint16_t*)0x20333fa2 = (uint16_t)0x204e; |
| *(uint32_t*)0x20333fa4 = (uint32_t)0x10000e0; |
| *(uint8_t*)0x20333fa8 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fa9 = (uint8_t)0x0; |
| *(uint8_t*)0x20333faa = (uint8_t)0x0; |
| *(uint8_t*)0x20333fab = (uint8_t)0x0; |
| *(uint8_t*)0x20333fac = (uint8_t)0x0; |
| *(uint8_t*)0x20333fad = (uint8_t)0x0; |
| *(uint8_t*)0x20333fae = (uint8_t)0x0; |
| *(uint8_t*)0x20333faf = (uint8_t)0x0; |
| *(uint16_t*)0x20333fb0 = (uint16_t)0x2; |
| *(uint16_t*)0x20333fb2 = (uint16_t)0x1; |
| *(uint32_t*)0x20333fb4 = (uint32_t)0x0; |
| *(uint8_t*)0x20333fb8 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fb9 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fba = (uint8_t)0x0; |
| *(uint8_t*)0x20333fbb = (uint8_t)0x2; |
| *(uint32_t*)0x20333fbc = (uint32_t)0x0; |
| *(uint16_t*)0x20333fc0 = (uint16_t)0x3; |
| *(uint16_t*)0x20333fc2 = (uint16_t)0x5; |
| *(uint8_t*)0x20333fc4 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fc5 = (uint8_t)0x0; |
| *(uint16_t*)0x20333fc6 = (uint16_t)0x0; |
| *(uint16_t*)0x20333fc8 = (uint16_t)0x2; |
| *(uint16_t*)0x20333fca = (uint16_t)0x204e; |
| *(uint32_t*)0x20333fcc = (uint32_t)0x0; |
| *(uint8_t*)0x20333fd0 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fd1 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fd2 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fd3 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fd4 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fd5 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fd6 = (uint8_t)0x0; |
| *(uint8_t*)0x20333fd7 = (uint8_t)0x0; |
| r[59] = syscall(__NR_sendmsg, r[1], 0x208befc8ul, 0x0ul); |
| } |
| |
| int main() |
| { |
| loop(); |
| return 0; |
| } |