// https://syzkaller.appspot.com/bug?id=c326dddd4946a98a2cf3056a621b548583510219
// autogenerated by syzkaller (https://github.com/google/syzkaller)

#define _GNU_SOURCE

#include <endian.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>

uint64_t r[3] = {0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff};

int main(void)
{
  syscall(__NR_mmap, /*addr=*/0x1ffff000ul, /*len=*/0x1000ul, /*prot=*/0ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
          /*offset=*/0ul);
  syscall(__NR_mmap, /*addr=*/0x20000000ul, /*len=*/0x1000000ul,
          /*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
          /*offset=*/0ul);
  syscall(__NR_mmap, /*addr=*/0x21000000ul, /*len=*/0x1000ul, /*prot=*/0ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
          /*offset=*/0ul);
  const char* reason;
  (void)reason;
  intptr_t res = 0;
  if (write(1, "executing program\n", sizeof("executing program\n") - 1)) {
  }
  res = syscall(__NR_socket, /*domain=*/0x10ul, /*type=*/3ul,
                /*proto=NETLINK_RDMA*/ 0x14);
  if (res != -1)
    r[0] = res;
  *(uint64_t*)0x20000300 = 0;
  *(uint32_t*)0x20000308 = 0;
  *(uint64_t*)0x20000310 = 0x20001200;
  *(uint64_t*)0x20001200 = 0x20001040;
  *(uint32_t*)0x20001040 = 0x38;
  *(uint16_t*)0x20001044 = 0x1403;
  *(uint16_t*)0x20001046 = 1;
  *(uint32_t*)0x20001048 = 0;
  *(uint32_t*)0x2000104c = 0;
  *(uint16_t*)0x20001050 = 9;
  *(uint16_t*)0x20001052 = 2;
  memcpy((void*)0x20001054, "syz0\000", 5);
  *(uint16_t*)0x2000105c = 8;
  *(uint16_t*)0x2000105e = 0x41;
  memcpy((void*)0x20001060, "siw\000", 4);
  *(uint16_t*)0x20001064 = 0x14;
  *(uint16_t*)0x20001066 = 0x33;
  memcpy((void*)0x20001068,
         "lo\000\000\000\000\000\000\000\000\000\000\000\000\000\000", 16);
  *(uint64_t*)0x20001208 = 0x38;
  *(uint64_t*)0x20000318 = 1;
  *(uint64_t*)0x20000320 = 0;
  *(uint64_t*)0x20000328 = 0;
  *(uint32_t*)0x20000330 = 0;
  syscall(__NR_sendmsg, /*fd=*/r[0], /*msg=*/0x20000300ul, /*f=*/0ul);
  res = syscall(__NR_socket, /*domain=*/2ul,
                /*type=SOCK_STREAM|0x4000000000000000*/ 0x4000000000000001ul,
                /*proto=*/0x100);
  if (res != -1)
    r[1] = res;
  *(uint16_t*)0x20000040 = 2;
  *(uint16_t*)0x20000042 = htobe16(0x4e23);
  *(uint8_t*)0x20000044 = 0xac;
  *(uint8_t*)0x20000045 = 0x14;
  *(uint8_t*)0x20000046 = 0x14;
  *(uint8_t*)0x20000047 = 0x13;
  syscall(
      __NR_sendto, /*fd=*/r[1], /*buf=*/0ul, /*len=*/0ul,
      /*f=MSG_FASTOPEN|MSG_PROBE|MSG_OOB|MSG_EOR|MSG_DONTWAIT|MSG_DONTROUTE|0x728*/
      0x200007fdul, /*addr=*/0x20000040ul, /*addrlen=*/0x10ul);
  res = syscall(__NR_socket, /*domain=AF_SMC*/ 0x2bul,
                /*type=SOCK_CLOEXEC|SOCK_NONBLOCK|SOCK_STREAM*/ 0x80801ul,
                /*proto=*/1);
  if (res != -1)
    r[2] = res;
  syscall(__NR_setsockopt, /*fd=*/r[2], /*level=*/0, /*opt=*/0xd2, /*val=*/0ul,
          /*len=*/0ul);
  return 0;
}