blob: 6db23bd7a85f157b4462f904dc3910eb15de625e [file] [log] [blame]
// INFO: trying to register non-static key in del_timer_sync
// https://syzkaller.appspot.com/bug?id=b4b5c74c57c4b69f4fff86131abb799106182749
// status:fixed
// autogenerated by syzkaller (http://github.com/google/syzkaller)
#define _GNU_SOURCE
#include <endian.h>
#include <errno.h>
#include <linux/net.h>
#include <netinet/in.h>
#include <signal.h>
#include <stdarg.h>
#include <stdio.h>
#include <sys/prctl.h>
#include <sys/socket.h>
#include <sys/syscall.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
__attribute__((noreturn)) static void doexit(int status)
{
volatile unsigned i;
syscall(__NR_exit_group, status);
for (i = 0;; i++) {
}
}
#include <stdint.h>
#include <string.h>
const int kFailStatus = 67;
const int kRetryStatus = 69;
static void fail(const char* msg, ...)
{
int e = errno;
va_list args;
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
fprintf(stderr, " (errno %d)\n", e);
doexit((e == ENOMEM || e == EAGAIN) ? kRetryStatus : kFailStatus);
}
static uint64_t current_time_ms()
{
struct timespec ts;
if (clock_gettime(CLOCK_MONOTONIC, &ts))
fail("clock_gettime failed");
return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000;
}
struct ipt_getinfo {
char name[32];
unsigned int valid_hooks;
unsigned int hook_entry[5];
unsigned int underflow[5];
unsigned int num_entries;
unsigned int size;
};
struct ipt_get_entries {
char name[32];
unsigned int size;
unsigned int pad;
char entrytable[1024];
};
struct xt_counters {
uint64_t pcnt, bcnt;
};
struct ipt_replace {
char name[32];
unsigned int valid_hooks;
unsigned int num_entries;
unsigned int size;
unsigned int hook_entry[5];
unsigned int underflow[5];
unsigned int num_counters;
struct xt_counters* counters;
char entrytable[1024];
};
struct ipt_table_desc {
const char* name;
struct ipt_getinfo info;
struct ipt_get_entries entries;
struct ipt_replace replace;
struct xt_counters counters[10];
};
static struct ipt_table_desc ipv4_tables[] = {
{.name = "filter"}, {.name = "nat"}, {.name = "mangle"},
{.name = "raw"}, {.name = "security"},
};
#define IPT_BASE_CTL 64
#define IPT_SO_SET_REPLACE (IPT_BASE_CTL)
#define IPT_SO_GET_INFO (IPT_BASE_CTL)
#define IPT_SO_GET_ENTRIES (IPT_BASE_CTL + 1)
static void checkpoint_net_namespace(void)
{
socklen_t optlen;
unsigned i;
int fd;
fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (fd == -1)
fail("socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)");
for (i = 0; i < sizeof(ipv4_tables) / sizeof(ipv4_tables[0]); i++) {
struct ipt_table_desc* table = &ipv4_tables[i];
strcpy(table->info.name, table->name);
strcpy(table->entries.name, table->name);
strcpy(table->replace.name, table->name);
optlen = sizeof(table->info);
if (getsockopt(fd, SOL_IP, IPT_SO_GET_INFO, &table->info, &optlen)) {
switch (errno) {
case EPERM:
case ENOENT:
case ENOPROTOOPT:
continue;
}
fail("getsockopt(IPT_SO_GET_INFO)");
}
if (table->info.size > sizeof(table->entries.entrytable))
fail("table size is too large: %u", table->info.size);
if (table->info.num_entries >
sizeof(table->counters) / sizeof(table->counters[0]))
fail("too many counters: %u", table->info.num_entries);
table->entries.size = table->info.size;
optlen = sizeof(table->entries) - sizeof(table->entries.entrytable) +
table->info.size;
if (getsockopt(fd, SOL_IP, IPT_SO_GET_ENTRIES, &table->entries, &optlen))
fail("getsockopt(IPT_SO_GET_ENTRIES)");
table->replace.valid_hooks = table->info.valid_hooks;
table->replace.num_entries = table->info.num_entries;
table->replace.counters = table->counters;
table->replace.size = table->info.size;
memcpy(table->replace.hook_entry, table->info.hook_entry,
sizeof(table->replace.hook_entry));
memcpy(table->replace.underflow, table->info.underflow,
sizeof(table->replace.underflow));
memcpy(table->replace.entrytable, table->entries.entrytable,
table->info.size);
}
close(fd);
}
static void reset_net_namespace(void)
{
struct ipt_get_entries entries;
struct ipt_getinfo info;
socklen_t optlen;
unsigned i;
int fd;
memset(&info, 0, sizeof(info));
memset(&entries, 0, sizeof(entries));
fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (fd == -1)
fail("socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)");
for (i = 0; i < sizeof(ipv4_tables) / sizeof(ipv4_tables[0]); i++) {
struct ipt_table_desc* table = &ipv4_tables[i];
if (table->info.valid_hooks == 0)
continue;
strcpy(info.name, table->name);
optlen = sizeof(info);
if (getsockopt(fd, SOL_IP, IPT_SO_GET_INFO, &info, &optlen))
fail("getsockopt(IPT_SO_GET_INFO)");
if (memcmp(&table->info, &info, sizeof(table->info)) == 0) {
strcpy(entries.name, table->name);
entries.size = table->info.size;
optlen = sizeof(entries) - sizeof(entries.entrytable) + entries.size;
if (getsockopt(fd, SOL_IP, IPT_SO_GET_ENTRIES, &entries, &optlen))
fail("getsockopt(IPT_SO_GET_ENTRIES)");
if (memcmp(&table->entries, &entries, optlen) == 0)
continue;
}
table->replace.num_counters = info.num_entries;
optlen = sizeof(table->replace) - sizeof(table->replace.entrytable) +
table->replace.size;
if (setsockopt(fd, SOL_IP, IPT_SO_SET_REPLACE, &table->replace, optlen))
fail("setsockopt(IPT_SO_SET_REPLACE)");
}
close(fd);
}
static void test();
void loop()
{
int iter;
checkpoint_net_namespace();
for (iter = 0;; iter++) {
int pid = fork();
if (pid < 0)
fail("loop fork failed");
if (pid == 0) {
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
test();
doexit(0);
}
int status = 0;
uint64_t start = current_time_ms();
for (;;) {
int res = waitpid(-1, &status, __WALL | WNOHANG);
if (res == pid)
break;
usleep(1000);
if (current_time_ms() - start > 5 * 1000) {
kill(-pid, SIGKILL);
kill(pid, SIGKILL);
while (waitpid(-1, &status, __WALL) != pid) {
}
break;
}
}
reset_net_namespace();
}
}
long r[2];
void test()
{
memset(r, -1, sizeof(r));
syscall(__NR_mmap, 0x20000000, 0x18000, 3, 0x32, -1, 0);
r[0] = syscall(__NR_socket, 2, 0x80001, 0);
memcpy((void*)0x20014000, "\x66\x69\x6c\x74\x65\x72\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",
32);
*(uint32_t*)0x20014020 = 0xe;
*(uint32_t*)0x20014024 = 4;
*(uint32_t*)0x20014028 = 0x280;
*(uint32_t*)0x2001402c = -1;
*(uint32_t*)0x20014030 = 0;
*(uint32_t*)0x20014034 = 0;
*(uint32_t*)0x20014038 = 0;
*(uint32_t*)0x2001403c = -1;
*(uint32_t*)0x20014040 = -1;
*(uint32_t*)0x20014044 = 0;
*(uint32_t*)0x20014048 = 0;
*(uint32_t*)0x2001404c = 0;
*(uint32_t*)0x20014050 = -1;
*(uint32_t*)0x20014054 = 4;
*(uint64_t*)0x20014058 = 0x20012fc0;
*(uint8_t*)0x20014060 = 0;
*(uint8_t*)0x20014061 = 0;
*(uint8_t*)0x20014062 = 0;
*(uint8_t*)0x20014063 = 0;
*(uint8_t*)0x20014064 = 0;
*(uint8_t*)0x20014065 = 0;
*(uint8_t*)0x20014066 = 0;
*(uint8_t*)0x20014067 = 0;
*(uint8_t*)0x20014068 = 0;
*(uint8_t*)0x20014069 = 0;
*(uint8_t*)0x2001406a = 0;
*(uint8_t*)0x2001406b = 0;
*(uint8_t*)0x2001406c = 0;
*(uint8_t*)0x2001406d = 0;
*(uint8_t*)0x2001406e = 0;
*(uint8_t*)0x2001406f = 0;
*(uint8_t*)0x20014070 = 0;
*(uint8_t*)0x20014071 = 0;
*(uint8_t*)0x20014072 = 0;
*(uint8_t*)0x20014073 = 0;
*(uint8_t*)0x20014074 = 0;
*(uint8_t*)0x20014075 = 0;
*(uint8_t*)0x20014076 = 0;
*(uint8_t*)0x20014077 = 0;
*(uint8_t*)0x20014078 = 0;
*(uint8_t*)0x20014079 = 0;
*(uint8_t*)0x2001407a = 0;
*(uint8_t*)0x2001407b = 0;
*(uint8_t*)0x2001407c = 0;
*(uint8_t*)0x2001407d = 0;
*(uint8_t*)0x2001407e = 0;
*(uint8_t*)0x2001407f = 0;
*(uint8_t*)0x20014080 = 0;
*(uint8_t*)0x20014081 = 0;
*(uint8_t*)0x20014082 = 0;
*(uint8_t*)0x20014083 = 0;
*(uint8_t*)0x20014084 = 0;
*(uint8_t*)0x20014085 = 0;
*(uint8_t*)0x20014086 = 0;
*(uint8_t*)0x20014087 = 0;
*(uint8_t*)0x20014088 = 0;
*(uint8_t*)0x20014089 = 0;
*(uint8_t*)0x2001408a = 0;
*(uint8_t*)0x2001408b = 0;
*(uint8_t*)0x2001408c = 0;
*(uint8_t*)0x2001408d = 0;
*(uint8_t*)0x2001408e = 0;
*(uint8_t*)0x2001408f = 0;
*(uint8_t*)0x20014090 = 0;
*(uint8_t*)0x20014091 = 0;
*(uint8_t*)0x20014092 = 0;
*(uint8_t*)0x20014093 = 0;
*(uint8_t*)0x20014094 = 0;
*(uint8_t*)0x20014095 = 0;
*(uint8_t*)0x20014096 = 0;
*(uint8_t*)0x20014097 = 0;
*(uint8_t*)0x20014098 = 0;
*(uint8_t*)0x20014099 = 0;
*(uint8_t*)0x2001409a = 0;
*(uint8_t*)0x2001409b = 0;
*(uint8_t*)0x2001409c = 0;
*(uint8_t*)0x2001409d = 0;
*(uint8_t*)0x2001409e = 0;
*(uint8_t*)0x2001409f = 0;
*(uint8_t*)0x200140a0 = 0;
*(uint8_t*)0x200140a1 = 0;
*(uint8_t*)0x200140a2 = 0;
*(uint8_t*)0x200140a3 = 0;
*(uint8_t*)0x200140a4 = 0;
*(uint8_t*)0x200140a5 = 0;
*(uint8_t*)0x200140a6 = 0;
*(uint8_t*)0x200140a7 = 0;
*(uint8_t*)0x200140a8 = 0;
*(uint8_t*)0x200140a9 = 0;
*(uint8_t*)0x200140aa = 0;
*(uint8_t*)0x200140ab = 0;
*(uint8_t*)0x200140ac = 0;
*(uint8_t*)0x200140ad = 0;
*(uint8_t*)0x200140ae = 0;
*(uint8_t*)0x200140af = 0;
*(uint8_t*)0x200140b0 = 0;
*(uint8_t*)0x200140b1 = 0;
*(uint8_t*)0x200140b2 = 0;
*(uint8_t*)0x200140b3 = 0;
*(uint32_t*)0x200140b4 = 0;
*(uint16_t*)0x200140b8 = 0x70;
*(uint16_t*)0x200140ba = 0x98;
*(uint32_t*)0x200140bc = 0;
*(uint64_t*)0x200140c0 = 0;
*(uint64_t*)0x200140c8 = 0;
*(uint16_t*)0x200140d0 = 0x28;
memcpy((void*)0x200140d2, "\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",
29);
*(uint8_t*)0x200140ef = 0;
*(uint32_t*)0x200140f0 = 0xfffffffe;
*(uint8_t*)0x200140f8 = 0xac;
*(uint8_t*)0x200140f9 = 0x14;
*(uint8_t*)0x200140fa = 0;
*(uint8_t*)0x200140fb = 0;
*(uint32_t*)0x200140fc = htobe32(-1);
*(uint32_t*)0x20014100 = htobe32(0);
*(uint32_t*)0x20014104 = htobe32(0);
memcpy((void*)0x20014108,
"\x69\x70\x36\x5f\x76\x74\x69\x30\x00\x00\x00\x00\x00\x00\x00\x00",
16);
*(uint8_t*)0x20014118 = 0x73;
*(uint8_t*)0x20014119 = 0x79;
*(uint8_t*)0x2001411a = 0x7a;
*(uint8_t*)0x2001411b = 0;
*(uint8_t*)0x2001411c = 0;
*(uint8_t*)0x20014128 = 0;
*(uint8_t*)0x20014129 = 0;
*(uint8_t*)0x2001412a = 0;
*(uint8_t*)0x2001412b = 0;
*(uint8_t*)0x2001412c = 0;
*(uint8_t*)0x2001412d = 0;
*(uint8_t*)0x2001412e = 0;
*(uint8_t*)0x2001412f = 0;
*(uint8_t*)0x20014130 = 0;
*(uint8_t*)0x20014131 = 0;
*(uint8_t*)0x20014132 = 0;
*(uint8_t*)0x20014133 = 0;
*(uint8_t*)0x20014134 = 0;
*(uint8_t*)0x20014135 = 0;
*(uint8_t*)0x20014136 = 0;
*(uint8_t*)0x20014137 = 0;
*(uint8_t*)0x20014138 = 0;
*(uint8_t*)0x20014139 = 0;
*(uint8_t*)0x2001413a = 0;
*(uint8_t*)0x2001413b = 0;
*(uint8_t*)0x2001413c = 0;
*(uint8_t*)0x2001413d = 0;
*(uint8_t*)0x2001413e = 0;
*(uint8_t*)0x2001413f = 0;
*(uint8_t*)0x20014140 = 0;
*(uint8_t*)0x20014141 = 0;
*(uint8_t*)0x20014142 = 0;
*(uint8_t*)0x20014143 = 0;
*(uint8_t*)0x20014144 = 0;
*(uint8_t*)0x20014145 = 0;
*(uint8_t*)0x20014146 = 0;
*(uint8_t*)0x20014147 = 0;
*(uint16_t*)0x20014148 = 0;
*(uint8_t*)0x2001414a = 0;
*(uint8_t*)0x2001414b = 0;
*(uint32_t*)0x2001414c = 0;
*(uint16_t*)0x20014150 = 0x70;
*(uint16_t*)0x20014152 = 0xb8;
*(uint32_t*)0x20014154 = 0;
*(uint64_t*)0x20014158 = 0;
*(uint64_t*)0x20014160 = 0;
*(uint16_t*)0x20014168 = 0x48;
memcpy((void*)0x2001416a, "\x4c\x45\x44\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",
29);
*(uint8_t*)0x20014187 = 0;
memcpy((void*)0x20014188, "\x73\x79\x7a\x30\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00",
27);
*(uint8_t*)0x200141a3 = 0;
*(uint32_t*)0x200141a4 = 0;
*(uint64_t*)0x200141a8 = 2;
*(uint8_t*)0x200141b0 = 0xac;
*(uint8_t*)0x200141b1 = 0x14;
*(uint8_t*)0x200141b2 = 0;
*(uint8_t*)0x200141b3 = 0;
*(uint32_t*)0x200141b4 = htobe32(0xe0000001);
*(uint32_t*)0x200141b8 = htobe32(0);
*(uint32_t*)0x200141bc = htobe32(0);
memcpy((void*)0x200141c0,
"\x6b\xd6\xd4\x48\x45\x73\x6f\x88\x9e\xc1\xcf\x4c\x41\xf2\xaf\xfa",
16);
*(uint8_t*)0x200141d0 = 0x73;
*(uint8_t*)0x200141d1 = 0x79;
*(uint8_t*)0x200141d2 = 0x7a;
*(uint8_t*)0x200141d3 = 0;
*(uint8_t*)0x200141d4 = 0;
*(uint8_t*)0x200141e0 = 0;
*(uint8_t*)0x200141e1 = 0;
*(uint8_t*)0x200141e2 = 0;
*(uint8_t*)0x200141e3 = 0;
*(uint8_t*)0x200141e4 = 0;
*(uint8_t*)0x200141e5 = 0;
*(uint8_t*)0x200141e6 = 0;
*(uint8_t*)0x200141e7 = 0;
*(uint8_t*)0x200141e8 = 0;
*(uint8_t*)0x200141e9 = 0;
*(uint8_t*)0x200141ea = 0;
*(uint8_t*)0x200141eb = 0;
*(uint8_t*)0x200141ec = 0;
*(uint8_t*)0x200141ed = 0;
*(uint8_t*)0x200141ee = 0;
*(uint8_t*)0x200141ef = 0;
*(uint8_t*)0x200141f0 = 0;
*(uint8_t*)0x200141f1 = 0;
*(uint8_t*)0x200141f2 = 0;
*(uint8_t*)0x200141f3 = 0;
*(uint8_t*)0x200141f4 = 0;
*(uint8_t*)0x200141f5 = 0;
*(uint8_t*)0x200141f6 = 0;
*(uint8_t*)0x200141f7 = 0;
*(uint8_t*)0x200141f8 = 0;
*(uint8_t*)0x200141f9 = 0;
*(uint8_t*)0x200141fa = 0;
*(uint8_t*)0x200141fb = 0;
*(uint8_t*)0x200141fc = 0;
*(uint8_t*)0x200141fd = 0;
*(uint8_t*)0x200141fe = 0;
*(uint8_t*)0x200141ff = 0;
*(uint16_t*)0x20014200 = 0;
*(uint8_t*)0x20014202 = 0;
*(uint8_t*)0x20014203 = 0;
*(uint32_t*)0x20014204 = 0;
*(uint16_t*)0x20014208 = 0x70;
*(uint16_t*)0x2001420a = 0x98;
*(uint32_t*)0x2001420c = 0;
*(uint64_t*)0x20014210 = 0;
*(uint64_t*)0x20014218 = 0;
*(uint16_t*)0x20014220 = 0x28;
memcpy((void*)0x20014222, "\x52\x45\x4a\x45\x43\x54\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00",
29);
*(uint8_t*)0x2001423f = 0;
*(uint32_t*)0x20014240 = 0;
*(uint32_t*)0x20014248 = htobe32(0xe0000002);
*(uint32_t*)0x2001424c = htobe32(0x7f000001);
*(uint32_t*)0x20014250 = htobe32(0);
*(uint32_t*)0x20014254 = htobe32(0);
memcpy((void*)0x20014258,
"\x69\x66\x62\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
16);
*(uint8_t*)0x20014268 = 0x73;
*(uint8_t*)0x20014269 = 0x79;
*(uint8_t*)0x2001426a = 0x7a;
*(uint8_t*)0x2001426b = 0;
*(uint8_t*)0x2001426c = 0;
*(uint8_t*)0x20014278 = 0;
*(uint8_t*)0x20014279 = 0;
*(uint8_t*)0x2001427a = 0;
*(uint8_t*)0x2001427b = 0;
*(uint8_t*)0x2001427c = 0;
*(uint8_t*)0x2001427d = 0;
*(uint8_t*)0x2001427e = 0;
*(uint8_t*)0x2001427f = 0;
*(uint8_t*)0x20014280 = 0;
*(uint8_t*)0x20014281 = 0;
*(uint8_t*)0x20014282 = 0;
*(uint8_t*)0x20014283 = 0;
*(uint8_t*)0x20014284 = 0;
*(uint8_t*)0x20014285 = 0;
*(uint8_t*)0x20014286 = 0;
*(uint8_t*)0x20014287 = 0;
*(uint8_t*)0x20014288 = 0;
*(uint8_t*)0x20014289 = 0;
*(uint8_t*)0x2001428a = 0;
*(uint8_t*)0x2001428b = 0;
*(uint8_t*)0x2001428c = 0;
*(uint8_t*)0x2001428d = 0;
*(uint8_t*)0x2001428e = 0;
*(uint8_t*)0x2001428f = 0;
*(uint8_t*)0x20014290 = 0;
*(uint8_t*)0x20014291 = 0;
*(uint8_t*)0x20014292 = 0;
*(uint8_t*)0x20014293 = 0;
*(uint8_t*)0x20014294 = 0;
*(uint8_t*)0x20014295 = 0;
*(uint8_t*)0x20014296 = 0;
*(uint8_t*)0x20014297 = 0;
*(uint16_t*)0x20014298 = 0;
*(uint8_t*)0x2001429a = 0;
*(uint8_t*)0x2001429b = 0;
*(uint32_t*)0x2001429c = 0;
*(uint16_t*)0x200142a0 = 0x70;
*(uint16_t*)0x200142a2 = 0x98;
*(uint32_t*)0x200142a4 = 0;
*(uint64_t*)0x200142a8 = 0;
*(uint64_t*)0x200142b0 = 0;
*(uint16_t*)0x200142b8 = 0x28;
memcpy((void*)0x200142ba, "\x52\x45\x4a\x45\x43\x54\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00",
29);
*(uint8_t*)0x200142d7 = 0;
*(uint32_t*)0x200142d8 = 0;
*(uint64_t*)0x20012fc0 = 0;
*(uint64_t*)0x20012fc8 = 0;
*(uint64_t*)0x20012fd0 = 0;
*(uint64_t*)0x20012fd8 = 0;
*(uint64_t*)0x20012fe0 = 0;
*(uint64_t*)0x20012fe8 = 0;
*(uint64_t*)0x20012ff0 = 0;
*(uint64_t*)0x20012ff8 = 0;
syscall(__NR_setsockopt, r[0], 0, 0x40, 0x20014000, 0x2e0);
r[1] = syscall(__NR_socket, 2, 0x80001, 0);
memcpy((void*)0x20014000, "\x66\x69\x6c\x74\x65\x72\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",
32);
*(uint32_t*)0x20014020 = 0xe;
*(uint32_t*)0x20014024 = 4;
*(uint32_t*)0x20014028 = 0x280;
*(uint32_t*)0x2001402c = -1;
*(uint32_t*)0x20014030 = 0;
*(uint32_t*)0x20014034 = 0;
*(uint32_t*)0x20014038 = 0;
*(uint32_t*)0x2001403c = -1;
*(uint32_t*)0x20014040 = -1;
*(uint32_t*)0x20014044 = 0;
*(uint32_t*)0x20014048 = 0;
*(uint32_t*)0x2001404c = 0;
*(uint32_t*)0x20014050 = -1;
*(uint32_t*)0x20014054 = 4;
*(uint64_t*)0x20014058 = 0x20012fc0;
*(uint8_t*)0x20014060 = 0;
*(uint8_t*)0x20014061 = 0;
*(uint8_t*)0x20014062 = 0;
*(uint8_t*)0x20014063 = 0;
*(uint8_t*)0x20014064 = 0;
*(uint8_t*)0x20014065 = 0;
*(uint8_t*)0x20014066 = 0;
*(uint8_t*)0x20014067 = 0;
*(uint8_t*)0x20014068 = 0;
*(uint8_t*)0x20014069 = 0;
*(uint8_t*)0x2001406a = 0;
*(uint8_t*)0x2001406b = 0;
*(uint8_t*)0x2001406c = 0;
*(uint8_t*)0x2001406d = 0;
*(uint8_t*)0x2001406e = 0;
*(uint8_t*)0x2001406f = 0;
*(uint8_t*)0x20014070 = 0;
*(uint8_t*)0x20014071 = 0;
*(uint8_t*)0x20014072 = 0;
*(uint8_t*)0x20014073 = 0;
*(uint8_t*)0x20014074 = 0;
*(uint8_t*)0x20014075 = 0;
*(uint8_t*)0x20014076 = 0;
*(uint8_t*)0x20014077 = 0;
*(uint8_t*)0x20014078 = 0;
*(uint8_t*)0x20014079 = 0;
*(uint8_t*)0x2001407a = 0;
*(uint8_t*)0x2001407b = 0;
*(uint8_t*)0x2001407c = 0;
*(uint8_t*)0x2001407d = 0;
*(uint8_t*)0x2001407e = 0;
*(uint8_t*)0x2001407f = 0;
*(uint8_t*)0x20014080 = 0;
*(uint8_t*)0x20014081 = 0;
*(uint8_t*)0x20014082 = 0;
*(uint8_t*)0x20014083 = 0;
*(uint8_t*)0x20014084 = 0;
*(uint8_t*)0x20014085 = 0;
*(uint8_t*)0x20014086 = 0;
*(uint8_t*)0x20014087 = 0;
*(uint8_t*)0x20014088 = 0;
*(uint8_t*)0x20014089 = 0;
*(uint8_t*)0x2001408a = 0;
*(uint8_t*)0x2001408b = 0;
*(uint8_t*)0x2001408c = 0;
*(uint8_t*)0x2001408d = 0;
*(uint8_t*)0x2001408e = 0;
*(uint8_t*)0x2001408f = 0;
*(uint8_t*)0x20014090 = 0;
*(uint8_t*)0x20014091 = 0;
*(uint8_t*)0x20014092 = 0;
*(uint8_t*)0x20014093 = 0;
*(uint8_t*)0x20014094 = 0;
*(uint8_t*)0x20014095 = 0;
*(uint8_t*)0x20014096 = 0;
*(uint8_t*)0x20014097 = 0;
*(uint8_t*)0x20014098 = 0;
*(uint8_t*)0x20014099 = 0;
*(uint8_t*)0x2001409a = 0;
*(uint8_t*)0x2001409b = 0;
*(uint8_t*)0x2001409c = 0;
*(uint8_t*)0x2001409d = 0;
*(uint8_t*)0x2001409e = 0;
*(uint8_t*)0x2001409f = 0;
*(uint8_t*)0x200140a0 = 0;
*(uint8_t*)0x200140a1 = 0;
*(uint8_t*)0x200140a2 = 0;
*(uint8_t*)0x200140a3 = 0;
*(uint8_t*)0x200140a4 = 0;
*(uint8_t*)0x200140a5 = 0;
*(uint8_t*)0x200140a6 = 0;
*(uint8_t*)0x200140a7 = 0;
*(uint8_t*)0x200140a8 = 0;
*(uint8_t*)0x200140a9 = 0;
*(uint8_t*)0x200140aa = 0;
*(uint8_t*)0x200140ab = 0;
*(uint8_t*)0x200140ac = 0;
*(uint8_t*)0x200140ad = 0;
*(uint8_t*)0x200140ae = 0;
*(uint8_t*)0x200140af = 0;
*(uint8_t*)0x200140b0 = 0;
*(uint8_t*)0x200140b1 = 0;
*(uint8_t*)0x200140b2 = 0;
*(uint8_t*)0x200140b3 = 0;
*(uint32_t*)0x200140b4 = 0;
*(uint16_t*)0x200140b8 = 0x70;
*(uint16_t*)0x200140ba = 0x98;
*(uint32_t*)0x200140bc = 0;
*(uint64_t*)0x200140c0 = 0;
*(uint64_t*)0x200140c8 = 0;
*(uint16_t*)0x200140d0 = 0x28;
memcpy((void*)0x200140d2, "\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",
29);
*(uint8_t*)0x200140ef = 0;
*(uint32_t*)0x200140f0 = 0xfffffffe;
*(uint8_t*)0x200140f8 = 0xac;
*(uint8_t*)0x200140f9 = 0x14;
*(uint8_t*)0x200140fa = 0;
*(uint8_t*)0x200140fb = 0;
*(uint32_t*)0x200140fc = htobe32(-1);
*(uint32_t*)0x20014100 = htobe32(0);
*(uint32_t*)0x20014104 = htobe32(0);
memcpy((void*)0x20014108,
"\x69\x70\x36\x5f\x76\x74\x69\x30\x00\x00\x00\x00\x00\x00\x00\x00",
16);
*(uint8_t*)0x20014118 = 0x73;
*(uint8_t*)0x20014119 = 0x79;
*(uint8_t*)0x2001411a = 0x7a;
*(uint8_t*)0x2001411b = 0;
*(uint8_t*)0x2001411c = 0;
*(uint8_t*)0x20014128 = 0;
*(uint8_t*)0x20014129 = 0;
*(uint8_t*)0x2001412a = 0;
*(uint8_t*)0x2001412b = 0;
*(uint8_t*)0x2001412c = 0;
*(uint8_t*)0x2001412d = 0;
*(uint8_t*)0x2001412e = 0;
*(uint8_t*)0x2001412f = 0;
*(uint8_t*)0x20014130 = 0;
*(uint8_t*)0x20014131 = 0;
*(uint8_t*)0x20014132 = 0;
*(uint8_t*)0x20014133 = 0;
*(uint8_t*)0x20014134 = 0;
*(uint8_t*)0x20014135 = 0;
*(uint8_t*)0x20014136 = 0;
*(uint8_t*)0x20014137 = 0;
*(uint8_t*)0x20014138 = 0;
*(uint8_t*)0x20014139 = 0;
*(uint8_t*)0x2001413a = 0;
*(uint8_t*)0x2001413b = 0;
*(uint8_t*)0x2001413c = 0;
*(uint8_t*)0x2001413d = 0;
*(uint8_t*)0x2001413e = 0;
*(uint8_t*)0x2001413f = 0;
*(uint8_t*)0x20014140 = 0;
*(uint8_t*)0x20014141 = 0;
*(uint8_t*)0x20014142 = 0;
*(uint8_t*)0x20014143 = 0;
*(uint8_t*)0x20014144 = 0;
*(uint8_t*)0x20014145 = 0;
*(uint8_t*)0x20014146 = 0;
*(uint8_t*)0x20014147 = 0;
*(uint16_t*)0x20014148 = 0;
*(uint8_t*)0x2001414a = 0;
*(uint8_t*)0x2001414b = 0;
*(uint32_t*)0x2001414c = 0;
*(uint16_t*)0x20014150 = 0x70;
*(uint16_t*)0x20014152 = 0xb8;
*(uint32_t*)0x20014154 = 0;
*(uint64_t*)0x20014158 = 0;
*(uint64_t*)0x20014160 = 0;
*(uint16_t*)0x20014168 = 0x48;
memcpy((void*)0x2001416a, "\x4c\x45\x44\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",
29);
*(uint8_t*)0x20014187 = 0;
memcpy((void*)0x20014188, "\x73\x79\x7a\x30\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00",
27);
*(uint8_t*)0x200141a3 = 0;
*(uint32_t*)0x200141a4 = 0x80000000;
*(uint64_t*)0x200141a8 = 2;
*(uint8_t*)0x200141b0 = 0xac;
*(uint8_t*)0x200141b1 = 0x14;
*(uint8_t*)0x200141b2 = 0;
*(uint8_t*)0x200141b3 = 0;
*(uint32_t*)0x200141b4 = htobe32(0xe0000001);
*(uint32_t*)0x200141b8 = htobe32(0);
*(uint32_t*)0x200141bc = htobe32(0);
memcpy((void*)0x200141c0,
"\x6b\xd6\xd4\x48\x45\x73\x6f\x88\x9e\xc1\xcf\x4c\x41\xf2\xaf\xfa",
16);
*(uint8_t*)0x200141d0 = 0x73;
*(uint8_t*)0x200141d1 = 0x79;
*(uint8_t*)0x200141d2 = 0x7a;
*(uint8_t*)0x200141d3 = 0;
*(uint8_t*)0x200141d4 = 0;
*(uint8_t*)0x200141e0 = 0;
*(uint8_t*)0x200141e1 = 0;
*(uint8_t*)0x200141e2 = 0;
*(uint8_t*)0x200141e3 = 0;
*(uint8_t*)0x200141e4 = 0;
*(uint8_t*)0x200141e5 = 0;
*(uint8_t*)0x200141e6 = 0;
*(uint8_t*)0x200141e7 = 0;
*(uint8_t*)0x200141e8 = 0;
*(uint8_t*)0x200141e9 = 0;
*(uint8_t*)0x200141ea = 0;
*(uint8_t*)0x200141eb = 0;
*(uint8_t*)0x200141ec = 0;
*(uint8_t*)0x200141ed = 0;
*(uint8_t*)0x200141ee = 0;
*(uint8_t*)0x200141ef = 0;
*(uint8_t*)0x200141f0 = 0;
*(uint8_t*)0x200141f1 = 0;
*(uint8_t*)0x200141f2 = 0;
*(uint8_t*)0x200141f3 = 0;
*(uint8_t*)0x200141f4 = 0;
*(uint8_t*)0x200141f5 = 0;
*(uint8_t*)0x200141f6 = 0;
*(uint8_t*)0x200141f7 = 0;
*(uint8_t*)0x200141f8 = 0;
*(uint8_t*)0x200141f9 = 0;
*(uint8_t*)0x200141fa = 0;
*(uint8_t*)0x200141fb = 0;
*(uint8_t*)0x200141fc = 0;
*(uint8_t*)0x200141fd = 0;
*(uint8_t*)0x200141fe = 0;
*(uint8_t*)0x200141ff = 0;
*(uint16_t*)0x20014200 = 0;
*(uint8_t*)0x20014202 = 0;
*(uint8_t*)0x20014203 = 0;
*(uint32_t*)0x20014204 = 0;
*(uint16_t*)0x20014208 = 0x70;
*(uint16_t*)0x2001420a = 0x98;
*(uint32_t*)0x2001420c = 0;
*(uint64_t*)0x20014210 = 0;
*(uint64_t*)0x20014218 = 0;
*(uint16_t*)0x20014220 = 0x28;
memcpy((void*)0x20014222, "\x52\x45\x4a\x45\x43\x54\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00",
29);
*(uint8_t*)0x2001423f = 0;
*(uint32_t*)0x20014240 = 0;
*(uint32_t*)0x20014248 = htobe32(0xe0000002);
*(uint32_t*)0x2001424c = htobe32(0x7f000001);
*(uint32_t*)0x20014250 = htobe32(0);
*(uint32_t*)0x20014254 = htobe32(0);
memcpy((void*)0x20014258,
"\x69\x66\x62\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
16);
*(uint8_t*)0x20014268 = 0x73;
*(uint8_t*)0x20014269 = 0x79;
*(uint8_t*)0x2001426a = 0x7a;
*(uint8_t*)0x2001426b = 0;
*(uint8_t*)0x2001426c = 0;
*(uint8_t*)0x20014278 = 0;
*(uint8_t*)0x20014279 = 0;
*(uint8_t*)0x2001427a = 0;
*(uint8_t*)0x2001427b = 0;
*(uint8_t*)0x2001427c = 0;
*(uint8_t*)0x2001427d = 0;
*(uint8_t*)0x2001427e = 0;
*(uint8_t*)0x2001427f = 0;
*(uint8_t*)0x20014280 = 0;
*(uint8_t*)0x20014281 = 0;
*(uint8_t*)0x20014282 = 0;
*(uint8_t*)0x20014283 = 0;
*(uint8_t*)0x20014284 = 0;
*(uint8_t*)0x20014285 = 0;
*(uint8_t*)0x20014286 = 0;
*(uint8_t*)0x20014287 = 0;
*(uint8_t*)0x20014288 = 0;
*(uint8_t*)0x20014289 = 0;
*(uint8_t*)0x2001428a = 0;
*(uint8_t*)0x2001428b = 0;
*(uint8_t*)0x2001428c = 0;
*(uint8_t*)0x2001428d = 0;
*(uint8_t*)0x2001428e = 0;
*(uint8_t*)0x2001428f = 0;
*(uint8_t*)0x20014290 = 0;
*(uint8_t*)0x20014291 = 0;
*(uint8_t*)0x20014292 = 0;
*(uint8_t*)0x20014293 = 0;
*(uint8_t*)0x20014294 = 0;
*(uint8_t*)0x20014295 = 0;
*(uint8_t*)0x20014296 = 0;
*(uint8_t*)0x20014297 = 0;
*(uint16_t*)0x20014298 = 0;
*(uint8_t*)0x2001429a = 0;
*(uint8_t*)0x2001429b = 0;
*(uint32_t*)0x2001429c = 0;
*(uint16_t*)0x200142a0 = 0x70;
*(uint16_t*)0x200142a2 = 0x98;
*(uint32_t*)0x200142a4 = 0;
*(uint64_t*)0x200142a8 = 0;
*(uint64_t*)0x200142b0 = 0;
*(uint16_t*)0x200142b8 = 0x28;
memcpy((void*)0x200142ba, "\x52\x45\x4a\x45\x43\x54\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00",
29);
*(uint8_t*)0x200142d7 = 0;
*(uint32_t*)0x200142d8 = 0;
*(uint64_t*)0x20012fc0 = 0;
*(uint64_t*)0x20012fc8 = 0;
*(uint64_t*)0x20012fd0 = 0;
*(uint64_t*)0x20012fd8 = 0;
*(uint64_t*)0x20012fe0 = 0;
*(uint64_t*)0x20012fe8 = 0;
*(uint64_t*)0x20012ff0 = 0;
*(uint64_t*)0x20012ff8 = 0;
syscall(__NR_setsockopt, r[1], 0, 0x40, 0x20014000, 0x2e0);
}
int main()
{
for (;;) {
loop();
}
}