// KMSAN: uninit-value in fib_create_info
// https://syzkaller.appspot.com/bug?id=9fe6bd32d4ac5295a0c88f101083e39f393a8984
// 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>

uint64_t r[1] = {0xffffffffffffffff};
void loop()
{
  long res = 0;
  res = syscall(__NR_socket, 0x10, 3, 0);
  if (res != -1)
    r[0] = res;
  *(uint64_t*)0x2000bfc8 = 0x20000080;
  *(uint16_t*)0x20000080 = 0x10;
  *(uint16_t*)0x20000082 = 0;
  *(uint32_t*)0x20000084 = 0;
  *(uint32_t*)0x20000088 = 0;
  *(uint32_t*)0x2000bfd0 = 0x80;
  *(uint64_t*)0x2000bfd8 = 0x20002000;
  *(uint64_t*)0x20002000 = 0x20b4efab;
  memcpy((void*)0x20b4efab,
         "\x55\x00\x00\x00\x18\x00\x7f\xaf\xb7\xa4\x1c\xb2\x2d\xa2\x80\x00\x02"
         "\x06\x00\x00\x00\xa8\x43\x09\x6c\x37\x23\x69\x39\x00\x09\x00\x21\x00"
         "\x03\x00\x4b\x00\xca\x8a\x98\x48\xa3\x09\x00\x00\x00\x6b\x7b\x31\xaf"
         "\xdc\x13\x38\xd5\x44\x00\x00\x9b\x84\x13\x6e\xf7\x5a\xfb\x83\xde\x44"
         "\x11\x00\x68\x27\xc4\x3a\xb8\x22\x00\x00\xbf\x0c\xec\x6b\xab\x91\xd4",
         85);
  *(uint64_t*)0x20002008 = 0x55;
  *(uint64_t*)0x2000bfe0 = 1;
  *(uint64_t*)0x2000bfe8 = 0x20004000;
  *(uint64_t*)0x2000bff0 = 0;
  *(uint32_t*)0x2000bff8 = 0;
  syscall(__NR_sendmsg, r[0], 0x2000bfc8, 0);
}

int main()
{
  syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0);
  loop();
  return 0;
}
