blob: b286601da921f1be72461dc373985c50be3e300b [file] [log] [blame]
// general protection fault in skcipher_walk_done
// https://syzkaller.appspot.com/bug?id=40fac1a3da1e12eb0893f02d8037825588feaabb
// status:fixed
// autogenerated by syzkaller (http://github.com/google/syzkaller)
#define _GNU_SOURCE
#include <endian.h>
#include <stdint.h>
#include <string.h>
#include <sys/syscall.h>
#include <unistd.h>
long r[2];
void loop()
{
memset(r, -1, sizeof(r));
syscall(__NR_mmap, 0x20000000, 0xf98000, 3, 0x32, -1, 0);
r[0] = syscall(__NR_socket, 0x26, 5, 0);
*(uint16_t*)0x2016b000 = 0x26;
memcpy((void*)0x2016b002,
"\x61\x65\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 14);
*(uint32_t*)0x2016b010 = 0x20f;
*(uint32_t*)0x2016b014 = 0;
memcpy((void*)0x2016b018,
"\x72\x66\x63\x37\x35\x33\x39\x28\x63\x74\x72\x28\x61\x65\x73\x29\x2c"
"\x73\x68\x61\x35\x31\x32\x2d\x61\x76\x78\x32\x29\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
64);
syscall(__NR_bind, r[0], 0x2016b000, 0x58);
memcpy((void*)0x203c1000, "\x0a\x07\x75\xb0\xd5\xe3\x83\xe5\xb3\xb6\x0c\xed"
"\x5c\x54\xdb\xb7\x29\x5d\xf0\xdf\x82\x17\xad\x40"
"\x00\x00\x00\x00\x00\x00\x00\xe6",
32);
syscall(__NR_setsockopt, r[0], 0x117, 1, 0x203c1000, 0x20);
r[1] = syscall(__NR_accept, r[0], 0, 0);
*(uint64_t*)0x20081000 = 0;
*(uint32_t*)0x20081008 = 0;
*(uint64_t*)0x20081010 = 0x20f87ff0;
*(uint64_t*)0x20081018 = 1;
*(uint64_t*)0x20081020 = 0x207da000;
*(uint64_t*)0x20081028 = 0;
*(uint32_t*)0x20081030 = 0;
*(uint64_t*)0x20f87ff0 = 0x201c9000;
*(uint64_t*)0x20f87ff8 = 0x20;
memcpy((void*)0x201c9000, "\x5d\xfb\xc3\x3d\xc1\x9c\xb8\x70\x84\x3d\xf3\x02"
"\x73\xb3\x81\xfa\xa8\xd6\x2a\x74\xea\xc9\x3d\x92"
"\x5f\x73\x14\x76\x83\xc8\x0e\x60",
32);
syscall(__NR_sendmsg, r[1], 0x20081000, 0);
*(uint64_t*)0x205f4fc8 = 0x20f91000;
*(uint32_t*)0x205f4fd0 = 0x58;
*(uint64_t*)0x205f4fd8 = 0x20f91f80;
*(uint64_t*)0x205f4fe0 = 1;
*(uint64_t*)0x205f4fe8 = 0x20000000;
*(uint64_t*)0x205f4ff0 = 0;
*(uint32_t*)0x205f4ff8 = 0;
*(uint64_t*)0x20f91f80 = 0x20196fd7;
*(uint64_t*)0x20f91f88 = 0x29;
syscall(__NR_recvmsg, r[1], 0x205f4fc8, 0x40000060);
}
int main()
{
loop();
return 0;
}