Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _GNU_SOURCE
- #include <endian.h>
- #include <errno.h>
- #include <fcntl.h>
- #include <sched.h>
- #include <setjmp.h>
- #include <stdbool.h>
- #include <stddef.h>
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
- #include <sys/mount.h>
- #include <sys/stat.h>
- #include <sys/syscall.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <linux/loop.h>
- #ifndef __NR_memfd_create
- #define __NR_memfd_create 319
- #endif
- static unsigned long long procid;
- #define BITMASK(bf_off, bf_len) (((1ull << (bf_len)) - 1) << (bf_off))
- #define STORE_BY_BITMASK(type, htobe, addr, val, bf_off, bf_len) \
- *(type*)(addr) = \
- htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | \
- (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len))))
- static long syz_open_dev(volatile long a0, volatile long a1, volatile long a2)
- {
- if (a0 == 0xc || a0 == 0xb) {
- char buf[128];
- sprintf(buf, "/dev/%s/%d:%d", a0 == 0xc ? "char" : "block", (uint8_t)a1,
- (uint8_t)a2);
- return open(buf, O_RDWR, 0);
- } else {
- char buf[1024];
- char* hash;
- strncpy(buf, (char*)a0, sizeof(buf) - 1);
- buf[sizeof(buf) - 1] = 0;
- while ((hash = strchr(buf, '#'))) {
- *hash = '0' + (char)(a1 % 10);
- a1 /= 10;
- }
- return open(buf, a2, 0);
- }
- }
- //% This code is derived from puff.{c,h}, found in the zlib development. The
- //% original files come with the following copyright notice:
- //% Copyright (C) 2002-2013 Mark Adler, all rights reserved
- //% version 2.3, 21 Jan 2013
- //% This software is provided 'as-is', without any express or implied
- //% warranty. In no event will the author be held liable for any damages
- //% arising from the use of this software.
- //% Permission is granted to anyone to use this software for any purpose,
- //% including commercial applications, and to alter it and redistribute it
- //% freely, subject to the following restrictions:
- //% 1. The origin of this software must not be misrepresented; you must not
- //% claim that you wrote the original software. If you use this software
- //% in a product, an acknowledgment in the product documentation would be
- //% appreciated but is not required.
- //% 2. Altered source versions must be plainly marked as such, and must not be
- //% misrepresented as being the original software.
- //% 3. This notice may not be removed or altered from any source distribution.
- //% Mark Adler [email protected]
- //% BEGIN CODE DERIVED FROM puff.{c,h}
- #define MAXBITS 15
- #define MAXLCODES 286
- #define MAXDCODES 30
- #define MAXCODES (MAXLCODES + MAXDCODES)
- #define FIXLCODES 288
- struct puff_state {
- unsigned char* out;
- unsigned long outlen;
- unsigned long outcnt;
- const unsigned char* in;
- unsigned long inlen;
- unsigned long incnt;
- int bitbuf;
- int bitcnt;
- jmp_buf env;
- };
- static int puff_bits(struct puff_state* s, int need)
- {
- long val = s->bitbuf;
- while (s->bitcnt < need) {
- if (s->incnt == s->inlen)
- longjmp(s->env, 1);
- val |= (long)(s->in[s->incnt++]) << s->bitcnt;
- s->bitcnt += 8;
- }
- s->bitbuf = (int)(val >> need);
- s->bitcnt -= need;
- return (int)(val & ((1L << need) - 1));
- }
- static int puff_stored(struct puff_state* s)
- {
- s->bitbuf = 0;
- s->bitcnt = 0;
- if (s->incnt + 4 > s->inlen)
- return 2;
- unsigned len = s->in[s->incnt++];
- len |= s->in[s->incnt++] << 8;
- if (s->in[s->incnt++] != (~len & 0xff) ||
- s->in[s->incnt++] != ((~len >> 8) & 0xff))
- return -2;
- if (s->incnt + len > s->inlen)
- return 2;
- if (s->outcnt + len > s->outlen)
- return 1;
- for (; len--; s->outcnt++, s->incnt++) {
- if (s->in[s->incnt])
- s->out[s->outcnt] = s->in[s->incnt];
- }
- return 0;
- }
- struct puff_huffman {
- short* count;
- short* symbol;
- };
- static int puff_decode(struct puff_state* s, const struct puff_huffman* h)
- {
- int first = 0;
- int index = 0;
- int bitbuf = s->bitbuf;
- int left = s->bitcnt;
- int code = first = index = 0;
- int len = 1;
- short* next = h->count + 1;
- while (1) {
- while (left--) {
- code |= bitbuf & 1;
- bitbuf >>= 1;
- int count = *next++;
- if (code - count < first) {
- s->bitbuf = bitbuf;
- s->bitcnt = (s->bitcnt - len) & 7;
- return h->symbol[index + (code - first)];
- }
- index += count;
- first += count;
- first <<= 1;
- code <<= 1;
- len++;
- }
- left = (MAXBITS + 1) - len;
- if (left == 0)
- break;
- if (s->incnt == s->inlen)
- longjmp(s->env, 1);
- bitbuf = s->in[s->incnt++];
- if (left > 8)
- left = 8;
- }
- return -10;
- }
- static int puff_construct(struct puff_huffman* h, const short* length, int n)
- {
- int len;
- for (len = 0; len <= MAXBITS; len++)
- h->count[len] = 0;
- int symbol;
- for (symbol = 0; symbol < n; symbol++)
- (h->count[length[symbol]])++;
- if (h->count[0] == n)
- return 0;
- int left = 1;
- for (len = 1; len <= MAXBITS; len++) {
- left <<= 1;
- left -= h->count[len];
- if (left < 0)
- return left;
- }
- short offs[MAXBITS + 1];
- offs[1] = 0;
- for (len = 1; len < MAXBITS; len++)
- offs[len + 1] = offs[len] + h->count[len];
- for (symbol = 0; symbol < n; symbol++)
- if (length[symbol] != 0)
- h->symbol[offs[length[symbol]]++] = symbol;
- return left;
- }
- static int puff_codes(struct puff_state* s, const struct puff_huffman* lencode,
- const struct puff_huffman* distcode)
- {
- static const short lens[29] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 13,
- 15, 17, 19, 23, 27, 31, 35, 43, 51, 59,
- 67, 83, 99, 115, 131, 163, 195, 227, 258};
- static const short lext[29] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
- 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0};
- static const short dists[30] = {
- 1, 2, 3, 4, 5, 7, 9, 13, 17, 25,
- 33, 49, 65, 97, 129, 193, 257, 385, 513, 769,
- 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577};
- static const short dext[30] = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3,
- 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
- 9, 9, 10, 10, 11, 11, 12, 12, 13, 13};
- int symbol;
- do {
- symbol = puff_decode(s, lencode);
- if (symbol < 0)
- return symbol;
- if (symbol < 256) {
- if (s->outcnt == s->outlen)
- return 1;
- if (symbol)
- s->out[s->outcnt] = symbol;
- s->outcnt++;
- } else if (symbol > 256) {
- symbol -= 257;
- if (symbol >= 29)
- return -10;
- int len = lens[symbol] + puff_bits(s, lext[symbol]);
- symbol = puff_decode(s, distcode);
- if (symbol < 0)
- return symbol;
- unsigned dist = dists[symbol] + puff_bits(s, dext[symbol]);
- if (dist > s->outcnt)
- return -11;
- if (s->outcnt + len > s->outlen)
- return 1;
- while (len--) {
- if (dist <= s->outcnt && s->out[s->outcnt - dist])
- s->out[s->outcnt] = s->out[s->outcnt - dist];
- s->outcnt++;
- }
- }
- } while (symbol != 256);
- return 0;
- }
- static int puff_fixed(struct puff_state* s)
- {
- static int virgin = 1;
- static short lencnt[MAXBITS + 1], lensym[FIXLCODES];
- static short distcnt[MAXBITS + 1], distsym[MAXDCODES];
- static struct puff_huffman lencode, distcode;
- if (virgin) {
- lencode.count = lencnt;
- lencode.symbol = lensym;
- distcode.count = distcnt;
- distcode.symbol = distsym;
- short lengths[FIXLCODES];
- int symbol;
- for (symbol = 0; symbol < 144; symbol++)
- lengths[symbol] = 8;
- for (; symbol < 256; symbol++)
- lengths[symbol] = 9;
- for (; symbol < 280; symbol++)
- lengths[symbol] = 7;
- for (; symbol < FIXLCODES; symbol++)
- lengths[symbol] = 8;
- puff_construct(&lencode, lengths, FIXLCODES);
- for (symbol = 0; symbol < MAXDCODES; symbol++)
- lengths[symbol] = 5;
- puff_construct(&distcode, lengths, MAXDCODES);
- virgin = 0;
- }
- return puff_codes(s, &lencode, &distcode);
- }
- static int puff_dynamic(struct puff_state* s)
- {
- static const short order[19] = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
- 11, 4, 12, 3, 13, 2, 14, 1, 15};
- int nlen = puff_bits(s, 5) + 257;
- int ndist = puff_bits(s, 5) + 1;
- int ncode = puff_bits(s, 4) + 4;
- if (nlen > MAXLCODES || ndist > MAXDCODES)
- return -3;
- short lengths[MAXCODES];
- int index;
- for (index = 0; index < ncode; index++)
- lengths[order[index]] = puff_bits(s, 3);
- for (; index < 19; index++)
- lengths[order[index]] = 0;
- short lencnt[MAXBITS + 1], lensym[MAXLCODES];
- struct puff_huffman lencode = {lencnt, lensym};
- int err = puff_construct(&lencode, lengths, 19);
- if (err != 0)
- return -4;
- index = 0;
- while (index < nlen + ndist) {
- int symbol;
- int len;
- symbol = puff_decode(s, &lencode);
- if (symbol < 0)
- return symbol;
- if (symbol < 16)
- lengths[index++] = symbol;
- else {
- len = 0;
- if (symbol == 16) {
- if (index == 0)
- return -5;
- len = lengths[index - 1];
- symbol = 3 + puff_bits(s, 2);
- } else if (symbol == 17)
- symbol = 3 + puff_bits(s, 3);
- else
- symbol = 11 + puff_bits(s, 7);
- if (index + symbol > nlen + ndist)
- return -6;
- while (symbol--)
- lengths[index++] = len;
- }
- }
- if (lengths[256] == 0)
- return -9;
- err = puff_construct(&lencode, lengths, nlen);
- if (err && (err < 0 || nlen != lencode.count[0] + lencode.count[1]))
- return -7;
- short distcnt[MAXBITS + 1], distsym[MAXDCODES];
- struct puff_huffman distcode = {distcnt, distsym};
- err = puff_construct(&distcode, lengths + nlen, ndist);
- if (err && (err < 0 || ndist != distcode.count[0] + distcode.count[1]))
- return -8;
- return puff_codes(s, &lencode, &distcode);
- }
- static int puff(unsigned char* dest, unsigned long* destlen,
- const unsigned char* source, unsigned long sourcelen)
- {
- struct puff_state s = {
- .out = dest,
- .outlen = *destlen,
- .outcnt = 0,
- .in = source,
- .inlen = sourcelen,
- .incnt = 0,
- .bitbuf = 0,
- .bitcnt = 0,
- };
- int err;
- if (setjmp(s.env) != 0)
- err = 2;
- else {
- int last;
- do {
- last = puff_bits(&s, 1);
- int type = puff_bits(&s, 2);
- err = type == 0 ? puff_stored(&s)
- : (type == 1 ? puff_fixed(&s)
- : (type == 2 ? puff_dynamic(&s) : -1));
- if (err != 0)
- break;
- } while (!last);
- }
- *destlen = s.outcnt;
- return err;
- }
- //% END CODE DERIVED FROM puff.{c,h}
- #define ZLIB_HEADER_WIDTH 2
- static int puff_zlib_to_file(const unsigned char* source,
- unsigned long sourcelen, int dest_fd)
- {
- if (sourcelen < ZLIB_HEADER_WIDTH)
- return 0;
- source += ZLIB_HEADER_WIDTH;
- sourcelen -= ZLIB_HEADER_WIDTH;
- const unsigned long max_destlen = 132 << 20;
- void* ret = mmap(0, max_destlen, PROT_WRITE | PROT_READ,
- MAP_PRIVATE | MAP_ANON, -1, 0);
- if (ret == MAP_FAILED)
- return -1;
- unsigned char* dest = (unsigned char*)ret;
- unsigned long destlen = max_destlen;
- int err = puff(dest, &destlen, source, sourcelen);
- if (err) {
- munmap(dest, max_destlen);
- errno = -err;
- return -1;
- }
- if (write(dest_fd, dest, destlen) != (ssize_t)destlen) {
- munmap(dest, max_destlen);
- return -1;
- }
- return munmap(dest, max_destlen);
- }
- static int setup_loop_device(unsigned char* data, unsigned long size,
- const char* loopname, int* loopfd_p)
- {
- int err = 0, loopfd = -1;
- int memfd = syscall(__NR_memfd_create, "syzkaller", 0);
- if (memfd == -1) {
- err = errno;
- goto error;
- }
- if (puff_zlib_to_file(data, size, memfd)) {
- err = errno;
- goto error_close_memfd;
- }
- loopfd = open(loopname, O_RDWR);
- if (loopfd == -1) {
- err = errno;
- goto error_close_memfd;
- }
- if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
- if (errno != EBUSY) {
- err = errno;
- goto error_close_loop;
- }
- ioctl(loopfd, LOOP_CLR_FD, 0);
- usleep(1000);
- if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
- err = errno;
- goto error_close_loop;
- }
- }
- close(memfd);
- *loopfd_p = loopfd;
- return 0;
- error_close_loop:
- close(loopfd);
- error_close_memfd:
- close(memfd);
- error:
- errno = err;
- return -1;
- }
- static void reset_loop_device(const char* loopname)
- {
- int loopfd = open(loopname, O_RDWR);
- if (loopfd == -1) {
- return;
- }
- if (ioctl(loopfd, LOOP_CLR_FD, 0)) {
- }
- close(loopfd);
- }
- static long syz_mount_image(volatile long fsarg, volatile long dir,
- volatile long flags, volatile long optsarg,
- volatile long change_dir,
- volatile unsigned long size, volatile long image)
- {
- unsigned char* data = (unsigned char*)image;
- int res = -1, err = 0, need_loop_device = !!size;
- char* mount_opts = (char*)optsarg;
- char* target = (char*)dir;
- char* fs = (char*)fsarg;
- char* source = NULL;
- char loopname[64];
- if (need_loop_device) {
- int loopfd;
- memset(loopname, 0, sizeof(loopname));
- snprintf(loopname, sizeof(loopname), "/dev/loop%llu", procid);
- if (setup_loop_device(data, size, loopname, &loopfd) == -1)
- return -1;
- close(loopfd);
- source = loopname;
- }
- mkdir(target, 0777);
- char opts[256];
- memset(opts, 0, sizeof(opts));
- if (strlen(mount_opts) > (sizeof(opts) - 32)) {
- }
- strncpy(opts, mount_opts, sizeof(opts) - 32);
- if (strcmp(fs, "iso9660") == 0) {
- flags |= MS_RDONLY;
- } else if (strncmp(fs, "ext", 3) == 0) {
- bool has_remount_ro = false;
- char* remount_ro_start = strstr(opts, "errors=remount-ro");
- if (remount_ro_start != NULL) {
- char after = *(remount_ro_start + strlen("errors=remount-ro"));
- char before = remount_ro_start == opts ? '\0' : *(remount_ro_start - 1);
- has_remount_ro = ((before == '\0' || before == ',') &&
- (after == '\0' || after == ','));
- }
- if (strstr(opts, "errors=panic") || !has_remount_ro)
- strcat(opts, ",errors=continue");
- } else if (strcmp(fs, "xfs") == 0) {
- strcat(opts, ",nouuid");
- }
- res = mount(source, target, fs, flags, opts);
- if (res == -1) {
- err = errno;
- goto error_clear_loop;
- }
- res = open(target, O_RDONLY | O_DIRECTORY);
- if (res == -1) {
- err = errno;
- goto error_clear_loop;
- }
- if (change_dir) {
- res = chdir(target);
- if (res == -1) {
- err = errno;
- }
- }
- error_clear_loop:
- if (need_loop_device)
- reset_loop_device(loopname);
- errno = err;
- return res;
- }
- #define USLEEP_FORKED_CHILD (3 * 50 * 1000)
- static long handle_clone_ret(long ret)
- {
- if (ret != 0) {
- return ret;
- }
- usleep(USLEEP_FORKED_CHILD);
- syscall(__NR_exit, 0);
- while (1) {
- }
- }
- static long syz_clone(volatile long flags, volatile long stack,
- volatile long stack_len, volatile long ptid,
- volatile long ctid, volatile long tls)
- {
- long sp = (stack + stack_len) & ~15;
- long ret = (long)syscall(__NR_clone, flags & ~CLONE_VM, sp, ptid, ctid, tls);
- return handle_clone_ret(ret);
- }
- uint64_t r[11] = {0xffffffffffffffff,
- 0xffffffffffffffff,
- 0x0,
- 0xffffffffffffffff,
- 0xffffffffffffffff,
- 0x0,
- 0xffffffffffffffff,
- 0xffffffffffffffff,
- 0xffffffffffffffff,
- 0x0,
- 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);
- intptr_t res = 0;
- *(uint32_t*)0x2001d000 = 0;
- *(uint32_t*)0x2001d004 = 0x80;
- *(uint8_t*)0x2001d008 = 2;
- *(uint8_t*)0x2001d009 = 0;
- *(uint8_t*)0x2001d00a = 0;
- *(uint8_t*)0x2001d00b = 0;
- *(uint32_t*)0x2001d00c = 0;
- *(uint64_t*)0x2001d010 = 0x18a;
- *(uint64_t*)0x2001d018 = 0;
- *(uint64_t*)0x2001d020 = 0;
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 0, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 1, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 2, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 3, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 4, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 5, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 6, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 7, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 8, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 9, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 10, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 11, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 12, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 13, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 14, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 15, 2);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 17, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 18, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 19, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 20, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 21, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 22, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 23, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 24, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 25, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 26, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 27, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 28, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 29, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 30, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 31, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 32, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 33, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 34, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 35, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 36, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 37, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 38, 26);
- *(uint32_t*)0x2001d030 = 0;
- *(uint32_t*)0x2001d034 = 0;
- *(uint64_t*)0x2001d038 = 3;
- *(uint64_t*)0x2001d040 = 0;
- *(uint64_t*)0x2001d048 = 0;
- *(uint64_t*)0x2001d050 = 0;
- *(uint32_t*)0x2001d058 = 0;
- *(uint32_t*)0x2001d05c = 4;
- *(uint64_t*)0x2001d060 = 0;
- *(uint32_t*)0x2001d068 = 0;
- *(uint16_t*)0x2001d06c = 0;
- *(uint16_t*)0x2001d06e = 0;
- *(uint32_t*)0x2001d070 = 0;
- *(uint32_t*)0x2001d074 = 0;
- *(uint64_t*)0x2001d078 = 0;
- res = syscall(__NR_perf_event_open, /*attr=*/0x2001d000ul, /*pid=*/0,
- /*cpu=*/-1, /*group=*/-1, /*flags=*/0ul);
- if (res != -1)
- r[0] = res;
- memcpy((void*)0x20000080, "ext4\000", 5);
- memcpy((void*)0x20000500, "./file1\000", 8);
- memcpy((void*)0x20000240,
- "errors=remount-ro,grpquota,dioread_lock,debug,noauto_da_alloc,"
- "barrier,barrier,init_itable=0x0,usrquota,\000",
- 104);
- memcpy(
- (void*)0x20000ec0,
- "\x78\x9c\xec\xdd\x51\x6b\x5c\x59\x1d\x00\xf0\xff\xbd\xc9\xd4\xb4\x4d\x4d"
- "\xaa\x3e\xd4\x82\xb5\xd8\x4a\x5a\xb4\x33\x49\x63\xdb\xe0\x43\xad\x20\xf6"
- "\xa9\xa0\xd6\xf7\x1a\x93\x49\x08\x99\x64\x42\x66\xd2\x26\xa1\x48\x8a\x1f"
- "\x40\x10\x51\xc1\x27\x9f\x7c\x11\xfc\x00\x82\xf4\x23\x88\x50\xd0\x77\xd9"
- "\x5d\x76\x59\x76\xdb\xdd\x87\x7d\xd8\xdd\x59\x66\xe6\x4e\xb7\xcd\xce\x34"
- "\x09\x9d\xe4\x2e\xc9\xef\x07\x27\xf7\x9c\x7b\xef\xcc\xff\x7f\x12\xe6\xce"
- "\x3d\xf7\x9e\xcc\x04\x70\x64\x9d\x8f\x88\x5b\x11\x31\x10\x11\x97\x23\x62"
- "\x24\x5b\x9f\x66\xe5\x76\xb3\xb1\xd5\xde\xef\xd9\xd3\x87\x33\xcd\x92\x44"
- "\xa3\x71\xf7\xbd\x24\x92\x6c\x5d\xe7\xb9\x92\x6c\x79\xb2\xfd\x90\x18\x8a"
- "\x88\x5f\xdc\x8e\xf8\x75\xf2\xc5\xb8\xb5\x8d\xcd\xc5\xe9\x4a\xa5\xbc\x9a"
- "\xb5\x4b\xf5\xa5\x95\x52\x6d\x63\xf3\xca\xc2\xd2\xf4\x7c\x79\xbe\xbc\x3c"
- "\x39\x39\x71\x7d\xea\xc6\xd4\xb5\xa9\xf1\xbe\xf4\x73\x34\x22\x6e\xfe\xe4"
- "\xad\x3f\xfe\xee\x6f\x3f\xbd\xf9\xaf\xef\x3f\xf8\xff\xbd\x77\x2e\xfd\xa6"
- "\x99\xd6\x70\xb6\xfd\xc5\x7e\xf4\x53\xbb\xeb\x85\xd6\xef\xa2\x63\x30\x22"
- "\x56\xf7\x23\x58\x0e\x06\xb2\x65\x21\xe7\x3c\x00\x00\xd8\x9d\xe6\x39\xfe"
- "\xd7\x22\xe2\x3b\xad\xf3\xff\x91\x18\x68\x9d\x9d\x02\x00\x00\x00\x87\x49"
- "\xe3\x47\xc3\xf1\x71\x12\xd1\x00\x00\x00\x00\x0e\xad\xb4\x35\x07\x36\x49"
- "\x8b\xd9\x5c\x80\xe1\x48\xd3\x62\xb1\x3d\x87\xf7\x1b\x71\x22\xad\x54\x6b"
- "\xf5\xef\xcd\x55\xd7\x96\x67\xdb\x73\x65\x47\xa3\x90\xce\x2d\x54\xca\xe3"
- "\xd9\x5c\xe1\xd1\x28\x24\xcd\xf6\x44\x36\xc7\xb6\xd3\xbe\xba\xad\x3d\x19"
- "\x11\xa7\x23\xe2\x0f\x23\xc7\x5b\xed\xe2\x4c\xb5\x32\x9b\xf7\xc5\x0f\x00"
- "\x00\x00\x38\x22\x4e\x6e\x1b\xff\x7f\x38\xd2\x1e\xff\x03\x00\x00\x00\x87"
- "\xcc\x68\xde\x09\x00\x00\x00\x00\xfb\xce\xf8\x1f\x00\x00\x00\x0e\x3f\xe3"
- "\x7f\x00\x00\x00\x38\xd4\x7e\x76\xe7\x4e\xb3\x34\x3a\xdf\x7f\x3d\x7b\x7f"
- "\x63\x6d\xb1\x7a\xff\xca\x6c\xb9\xb6\x58\x5c\x5a\x9b\x29\xce\x54\x57\x57"
- "\x8a\xf3\xd5\xea\x7c\xeb\x33\xfb\x96\x76\x7a\xbe\x4a\xb5\xba\xf2\x83\x58"
- "\x5e\x5b\x2f\xd5\xcb\xb5\x7a\xa9\xb6\xb1\x79\x6f\xa9\xba\xb6\x5c\xbf\xb7"
- "\xf0\xd2\x57\x60\x03\x00\x00\x00\x07\xe8\xf4\xb7\x1f\xff\x2f\x89\x88\xad"
- "\x1f\x1e\x6f\x95\xa6\x63\x79\x27\x05\x1c\x88\x64\x2f\x3b\xbf\xb9\x7f\x79"
- "\x00\x07\x6f\x20\xef\x04\x80\xdc\x0c\xe6\x9d\x00\x90\x9b\x42\xde\x09\x00"
- "\xb9\xdb\xe9\x3a\x40\xcf\xc9\x3b\xff\xee\x7f\x2e\x00\x00\xc0\xfe\x18\xfb"
- "\x66\xef\xfb\xff\xae\x0d\xc0\xe1\x96\xe6\x9d\x00\x00\x70\xe0\xdc\xff\x87"
- "\xa3\xab\x60\x06\x20\x1c\x79\x5f\xdd\x61\xfb\xeb\xdf\xff\x6f\x34\xf6\x94"
- "\x10\x00\x00\xd0\x77\xc3\xad\x92\xa4\xc5\xec\x5e\xe0\x70\xa4\x69\xb1\x18"
- "\x71\xaa\xf5\xb5\x00\x85\x64\x6e\xa1\x52\x1e\xcf\xc6\x07\xff\x1d\x29\x7c"
- "\xa5\xd9\x9e\x68\x3d\x32\xd9\xdb\xff\x0e\x03\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x11\xd6\x68\x24\xd1\xd8"
- "\x93\x18\xda\xdb\xfe\x00\x00\x00\x40\xde\x22\xd2\xb7\x93\xd6\xa7\xf9\x47"
- "\x8c\x8d\x5c\x1c\xde\x7e\x7d\xe0\x58\xf2\xd1\x48\x6b\x19\x11\x0f\xfe\x72"
- "\xf7\x4f\xeb\xd3\xf5\xfa\xea\x44\x73\xfd\xfb\xcf\xd7\xd7\xff\x9c\xad\xbf"
- "\x9a\xc7\x15\x0c\x00\x00\x00\x60\xbb\xce\x38\x7d\x3d\xcd\x3b\x13\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\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e"
- "\xa3\x67\x4f\x1f\xce\x74\xca\x41\xc6\x7d\xf7\xc7\x11\x31\xda\x2d\xfe\x60"
- "\x0c\xb5\x96\x43\x51\x88\x88\x13\x1f\x24\x31\xf8\xc2\xe3\x92\x88\x18\xe8"
- "\x43\xfc\xad\x47\x11\x71\xa6\x5b\xfc\xa4\x99\x56\x8c\x66\x59\x74\x8b\x7f"
- "\x3c\xc7\xf8\x69\x44\x9c\xec\x43\x7c\x38\xca\x1e\x37\x8f\x3f\xb7\xba\xbd"
- "\xfe\xd2\x38\xdf\x5a\x76\x7f\xfd\x0d\x66\xe5\x75\xf5\x3e\xfe\xa5\xcf\x8f"
- "\x7f\x03\x3d\x8e\x3f\xa7\x76\x19\xe3\xec\x93\x7f\x94\x7a\xc6\x7f\x14\x71"
- "\x76\xb0\xfb\xf1\xa7\x13\x3f\xe9\x11\xff\xc2\x2e\xe3\xff\xea\x97\x9b\x9b"
- "\xbd\xb6\x35\xfe\x1a\x31\xd6\xf5\xfd\x27\x79\x29\x56\xa9\xbe\xb4\x52\xaa"
- "\x6d\x6c\x5e\x59\x58\x9a\x9e\x2f\xcf\x97\x97\x27\x27\x27\xae\x4f\xdd\x98"
- "\xba\x36\x35\x5e\x9a\x5b\xa8\x94\xb3\x9f\x5d\x63\xfc\xfe\x5b\xff\xfc\xf4"
- "\x55\xfd\x3f\xd1\x23\xfe\xe8\x0e\xfd\xbf\xb8\xcb\xfe\x7f\xf2\x64\xfd\xe9"
- "\xd7\xdb\xd5\x42\xb7\xf8\x97\x2e\x74\x7f\xff\x3d\xd3\x23\x7e\x9a\xbd\xf7"
- "\x7d\x37\xab\x37\xb7\x8f\x75\xea\x5b\xed\xfa\x8b\xce\xfd\xfd\x3f\xe7\x5e"
- "\xd5\xff\xd9\x1e\xfd\xdf\xe9\xef\x7f\x69\x97\xfd\xbf\xfc\xf3\xdf\xbe\xb1"
- "\xcb\x5d\x01\x80\x03\x50\xdb\xd8\x5c\x9c\xae\x54\xca\xab\x39\x57\x86\xbe"
- "\x1c\x69\xa8\xa8\xa8\xb4\x2a\x79\x1f\x99\x00\x00\x80\x7e\xfb\xfc\xa4\x3f"
- "\xef\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0"
- "\xe8\xea\xeb\x67\x86\xa5\xd1\x75\xd3\xf6\x98\x5b\xf9\x74\x15\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\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\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\xe0\x95\x3e\x0b\x00\x00\xff\xff\x7b\x39\xcf\xc6",
- 1219);
- syz_mount_image(/*fs=*/0x20000080, /*dir=*/0x20000500, /*flags=MS_NOSUID*/ 2,
- /*opts=*/0x20000240, /*chdir=*/0x12, /*size=*/0x4c3,
- /*img=*/0x20000ec0);
- memcpy((void*)0x20000000, "/dev/snd/seq\000", 13);
- syscall(__NR_openat, /*fd=*/0xffffffffffffff9cul, /*file=*/0x20000000ul,
- /*flags=O_NOFOLLOW*/ 0x20000ul, 0);
- memcpy((void*)0x20000000, "/dev/snd/seq\000", 13);
- res = syscall(__NR_openat, /*fd=*/0xffffffffffffff9cul, /*file=*/0x20000000ul,
- /*flags=O_NOFOLLOW*/ 0x20000ul, 0);
- if (res != -1)
- r[1] = res;
- syz_open_dev(/*dev=*/0xc, /*major=*/4, /*minor=*/0x15);
- syscall(__NR_ioctl, /*fd=*/-1, /*cmd=*/0x4b34, /*arg=*/0x20ul);
- *(uint8_t*)0x200002c0 = 0;
- *(uint8_t*)0x200002c1 = 0x1f;
- *(uint8_t*)0x200002c2 = 1;
- *(uint8_t*)0x200002c3 = 1;
- *(uint32_t*)0x200002c4 = 0xfffffff8;
- *(uint32_t*)0x200002c8 = -1;
- *(uint8_t*)0x200002cc = 0x60;
- *(uint8_t*)0x200002cd = 3;
- *(uint8_t*)0x200002ce = 1;
- *(uint8_t*)0x200002cf = 6;
- *(uint32_t*)0x200002d0 = 0x400;
- *(uint32_t*)0x200002d4 = 0x800;
- *(uint32_t*)0x200002d8 = 0xfffff707;
- *(uint8_t*)0x200002dc = 7;
- *(uint8_t*)0x200002dd = 0x40;
- *(uint8_t*)0x200002de = 9;
- *(uint8_t*)0x200002df = 0x87;
- *(uint32_t*)0x200002e0 = 0x200;
- *(uint32_t*)0x200002e4 = 0x87;
- *(uint8_t*)0x200002e8 = 1;
- *(uint8_t*)0x200002e9 = 0xfd;
- *(uint8_t*)0x200002ea = 2;
- *(uint8_t*)0x200002eb = 9;
- *(uint8_t*)0x200002ec = 0xb8;
- *(uint32_t*)0x200002f0 = 4;
- *(uint32_t*)0x200002f4 = 3;
- *(uint8_t*)0x200002f8 = 0x3f;
- *(uint8_t*)0x200002f9 = 0xe0;
- *(uint8_t*)0x200002fa = 0x14;
- *(uint8_t*)0x200002fb = 0xca;
- *(uint32_t*)0x200002fc = 0xcb55;
- *(uint32_t*)0x20000300 = 2;
- *(uint8_t*)0x20000304 = 7;
- *(uint8_t*)0x20000305 = 0x1f;
- *(uint8_t*)0x20000306 = 0x7f;
- *(uint8_t*)0x20000307 = 7;
- *(uint8_t*)0x20000308 = 3;
- *(uint8_t*)0x20000309 = 8;
- syscall(__NR_write, /*fd=*/r[1], /*data=*/0x200002c0ul, /*len=*/0x54ul);
- *(uint64_t*)0x20000400 = 0x7f;
- syscall(__NR_ioctl, /*fd=*/r[1], /*cmd=*/0x40089413, /*arg=*/0x20000400ul);
- res = -1;
- res = syz_clone(/*flags=*/0, /*stack=*/0, /*stack_len=*/0, /*parentid=*/0,
- /*childtid=*/0, /*tls=*/0);
- if (res != -1)
- r[2] = res;
- syscall(__NR_ftruncate, /*fd=*/-1, /*len=*/1ul);
- memcpy((void*)0x20007f80, "./bus\000", 6);
- res =
- syscall(__NR_open, /*file=*/0x20007f80ul,
- /*flags=O_SYNC|O_NOCTTY|O_NOATIME|O_EXCL|O_CREAT|0x2*/ 0x1411c2ul,
- /*mode=*/0ul);
- if (res != -1)
- r[3] = res;
- syscall(__NR_ftruncate, /*fd=*/r[3], /*len=*/8ul);
- syscall(__NR_ftruncate, /*fd=*/r[3], /*len=*/8ul);
- syscall(__NR_sendfile, /*fdout=*/r[3], /*fdin=*/r[3], /*off=*/0ul,
- /*count=*/0xfffffffful);
- *(uint32_t*)0x20000000 = 0x4000;
- syscall(__NR_ioctl, /*fd=*/r[3], /*cmd=*/0x40086602, /*arg=*/0x20000000ul);
- *(uint32_t*)0x2001d000 = 0;
- *(uint32_t*)0x2001d004 = 0x80;
- *(uint8_t*)0x2001d008 = 2;
- *(uint8_t*)0x2001d009 = 0;
- *(uint8_t*)0x2001d00a = 0;
- *(uint8_t*)0x2001d00b = 0;
- *(uint32_t*)0x2001d00c = 0;
- *(uint64_t*)0x2001d010 = 0x18a;
- *(uint64_t*)0x2001d018 = 0;
- *(uint64_t*)0x2001d020 = 2;
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 0, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 1, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 2, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 3, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 4, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 5, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 6, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 7, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 8, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 9, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 10, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 11, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 12, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 13, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 14, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 15, 2);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 17, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 18, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 19, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 20, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 21, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 22, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 23, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 24, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 25, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 26, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 27, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 28, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 29, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 30, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 31, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 32, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 33, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 34, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 35, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 36, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 37, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 38, 26);
- *(uint32_t*)0x2001d030 = 0;
- *(uint32_t*)0x2001d034 = 0;
- *(uint64_t*)0x2001d038 = 0;
- *(uint64_t*)0x2001d040 = 0;
- *(uint64_t*)0x2001d048 = 0x280;
- *(uint64_t*)0x2001d050 = 0;
- *(uint32_t*)0x2001d058 = 0;
- *(uint32_t*)0x2001d05c = 0;
- *(uint64_t*)0x2001d060 = 0;
- *(uint32_t*)0x2001d068 = 0;
- *(uint16_t*)0x2001d06c = 0;
- *(uint16_t*)0x2001d06e = 0;
- *(uint32_t*)0x2001d070 = 0;
- *(uint32_t*)0x2001d074 = 0;
- *(uint64_t*)0x2001d078 = 0;
- syscall(__NR_perf_event_open, /*attr=*/0x2001d000ul, /*pid=*/0, /*cpu=*/-1,
- /*group=*/-1, /*flags=*/0ul);
- *(uint32_t*)0x2001d000 = 0;
- *(uint32_t*)0x2001d004 = 0x80;
- *(uint8_t*)0x2001d008 = 2;
- *(uint8_t*)0x2001d009 = 0;
- *(uint8_t*)0x2001d00a = 0;
- *(uint8_t*)0x2001d00b = 0;
- *(uint32_t*)0x2001d00c = 0;
- *(uint64_t*)0x2001d010 = 0x18a;
- *(uint64_t*)0x2001d018 = 0;
- *(uint64_t*)0x2001d020 = 2;
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 0, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 1, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 2, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 3, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 4, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 5, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 6, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 7, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 8, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 9, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 10, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 11, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 12, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 13, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 14, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 15, 2);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 17, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 18, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 19, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 20, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 21, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 22, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 23, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 24, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 25, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 26, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 27, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 28, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 29, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 30, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 31, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 32, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 33, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 34, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 35, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 36, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 37, 1);
- STORE_BY_BITMASK(uint64_t, , 0x2001d028, 0, 38, 26);
- *(uint32_t*)0x2001d030 = 0;
- *(uint32_t*)0x2001d034 = 0;
- *(uint64_t*)0x2001d038 = 0;
- *(uint64_t*)0x2001d040 = 0;
- *(uint64_t*)0x2001d048 = 0x280;
- *(uint64_t*)0x2001d050 = 0;
- *(uint32_t*)0x2001d058 = 0;
- *(uint32_t*)0x2001d05c = 0;
- *(uint64_t*)0x2001d060 = 0;
- *(uint32_t*)0x2001d068 = 0;
- *(uint16_t*)0x2001d06c = 0;
- *(uint16_t*)0x2001d06e = 0;
- *(uint32_t*)0x2001d070 = 0;
- *(uint32_t*)0x2001d074 = 0;
- *(uint64_t*)0x2001d078 = 0;
- syscall(__NR_perf_event_open, /*attr=*/0x2001d000ul, /*pid=*/0, /*cpu=*/-1,
- /*group=*/-1, /*flags=*/0ul);
- memcpy((void*)0x20000740, "/dev/autofs\000", 12);
- syscall(__NR_openat, /*fd=*/0xffffffffffffff9cul, /*file=*/0x20000740ul,
- /*flags=O_SYNC|O_EXCL|O_CLOEXEC*/ 0x181080ul, /*mode=*/0ul);
- memcpy((void*)0x20000740, "/dev/autofs\000", 12);
- syscall(__NR_openat, /*fd=*/0xffffffffffffff9cul, /*file=*/0x20000740ul,
- /*flags=O_SYNC|O_EXCL|O_CLOEXEC*/ 0x181080ul, /*mode=*/0ul);
- syscall(__NR_socket, /*domain=*/0xaul, /*type=*/1ul, /*proto=*/0);
- res = syscall(__NR_socket, /*domain=*/0xaul, /*type=*/1ul, /*proto=*/0);
- if (res != -1)
- r[4] = res;
- *(uint32_t*)0x20000100 = 0xe8;
- res = syscall(__NR_getsockopt, /*fd=*/r[4], /*level=*/0x29, /*optname=*/0x23,
- /*optval=*/0x20000780ul, /*optlen=*/0x20000100ul);
- if (res != -1)
- r[5] = *(uint32_t*)0x200007b4;
- res = syscall(__NR_socket, /*domain=AF_NETLINK*/ 0x10ul,
- /*type=SOCK_RAW*/ 3ul, /*proto=*/0);
- if (res != -1)
- r[6] = res;
- *(uint32_t*)0x20cab000 = 0xc;
- res = syscall(__NR_getsockopt, /*fd=*/r[6], /*level=*/1, /*optname=*/0x11,
- /*optval=*/0x20caaffbul, /*optlen=*/0x20cab000ul);
- if (res != -1) {
- r[7] = *(uint32_t*)0x20caafff;
- r[8] = *(uint32_t*)0x20cab003;
- }
- syscall(__NR_mmap, /*addr=*/0x20ffe000ul, /*len=*/0x1000ul,
- /*prot=PROT_GROWSUP|PROT_WRITE*/ 0x2000002ul,
- /*flags=MAP_FIXED|MAP_DENYWRITE*/ 0x810ul, /*fd=*/r[0],
- /*offset=*/0x400ul);
- memcpy((void*)0x20001b40, "ext2\000", 5);
- memcpy((void*)0x200047c0, "./file2\000", 8);
- *(uint8_t*)0x20000580 = r[8];
- *(uint16_t*)0x20000581 = r[7];
- memcpy(
- (void*)0x20003100,
- "\x78\x9c\xec\xdd\x4f\x6f\x23\x67\x19\x00\xf0\x67\x9c\xb8\x64\xbb\x59\x92"
- "\x02\x87\x52\xa9\xa5\xa2\x45\xd9\x0a\xd6\x4e\x1a\xda\x46\x1c\xda\x22\x21"
- "\x6e\x95\x40\xcb\x7d\x89\x12\x27\x8a\xe2\xc4\x51\xec\xb4\x9b\xa8\x42\xa9"
- "\xf8\x00\x48\x08\xc1\x4a\x9c\x38\x71\x41\xe2\x03\x20\xa1\xfd\x08\x68\xa5"
- "\x95\xd8\x3b\x02\x04\x42\xb0\x0b\x07\x0e\xc0\xa0\x19\x4f\xb2\x89\x35\xde"
- "\x64\xd5\xd8\x5e\x39\xbf\x9f\xf4\x7a\xde\x19\x7b\xe6\x79\x5e\x3b\x1e\xcf"
- "\x9f\x37\x33\x01\x5c\x5a\xaf\x46\xc4\xfb\x11\x31\x11\x11\x6f\x44\xc4\x4c"
- "\x31\xbd\x52\x94\x38\xec\x96\xec\x75\x8f\x1e\x7e\xbc\x92\x95\x24\xd2\xf4"
- "\xe6\xdf\x93\x7c\x9e\x6c\x3c\x22\x92\x93\xcb\xbc\x5a\xcc\x36\xd5\x1d\x94"
- "\x6a\xef\x1f\x6c\x2e\x37\x9b\x8d\xdd\x62\xbc\xde\xd9\xda\xa9\xb7\xf7\x0f"
- "\x6e\x6c\x6c\x2d\xaf\x37\xd6\x1b\xdb\x8b\x8b\x0b\x6f\x2f\xbd\xb3\xf4\xd6"
- "\xd2\xfc\x85\xb4\xf3\x5a\x44\xbc\xfb\xad\x3f\xff\xf4\x47\xbf\xfc\xf6\xbb"
- "\xbf\xfd\xda\x47\x7f\xb8\xf5\xd7\xeb\x3f\xc8\x92\x9e\x2e\x9e\x2f\xda\x71"
- "\xe1\x1e\xe4\x8f\xd5\xec\xbd\x38\x36\x19\x11\xbb\x83\x08\x36\x02\x13\x45"
- "\x7b\xaa\xa3\x4e\x04\x00\x80\x73\xa9\x45\xc4\xe7\x22\xe2\xcb\xf9\xf6\xff"
- "\x4c\x4c\xe4\x5b\x73\x39\x9b\x74\x00\x00\x00\x30\x26\xd2\xf7\xa6\xe3\x3f"
- "\x49\x44\x0a\x00\x00\x00\x8c\xad\xf7\xf2\x3e\xb0\x49\xa5\x56\xf4\xf7\x9d"
- "\x8e\x4a\xa5\x56\xeb\xf6\xe1\xfd\x42\x3c\x5f\x69\xb6\xda\x9d\xaf\xae\xb5"
- "\xf6\xb6\x57\xbb\x7d\x65\x67\xa3\x5a\x59\xdb\x68\x36\xe6\x8b\xbe\xc2\xb3"
- "\x51\x4d\xb2\xf1\x85\xbc\xfe\x78\xfc\xcd\x9e\xf1\xc5\x88\x78\x21\x22\x7e"
- "\x32\x73\x25\x1f\xaf\xad\xb4\x9a\xab\xa3\x3e\xf8\x01\x00\x00\x00\x97\xc4"
- "\xd5\x9e\xfd\xff\x7f\xcd\x74\xf7\xff\x01\x00\x00\x80\x31\x33\x3b\xea\x04"
- "\x00\x00\x00\x80\x81\xeb\xb7\xff\x9f\x0c\x39\x0f\x00\x00\x00\x60\x70\x9c"
- "\xff\x07\x00\x00\x80\xb1\xf6\x9d\x0f\x3e\xc8\x4a\x7a\x74\xff\xeb\xd5\x0f"
- "\xf7\xf7\x36\x5b\x1f\xde\x58\x6d\xb4\x37\x6b\x5b\x7b\x2b\xb5\x95\xd6\xee"
- "\x4e\x6d\xbd\xd5\x5a\xcf\xaf\xd9\xb7\x75\xd6\xf2\x9a\xad\xd6\xce\xd7\x63"
- "\x7b\xef\x76\xbd\xd3\x68\x77\xea\xed\xfd\x83\x5b\x5b\xad\xbd\xed\xce\xad"
- "\x8d\x53\xb7\xc0\x06\x00\x00\x00\x86\xe8\x85\x2f\xdd\x7d\x90\x44\xc4\xe1"
- "\x37\xae\xe4\x25\xf3\x5c\xf6\x30\xd1\x67\x06\x7d\x05\x60\x6c\x54\x9e\xe6"
- "\xc5\x7f\x1a\x5c\x1e\xc0\xf0\xf5\xfb\x99\x07\xc6\xdf\xe4\xa8\x13\x00\x46"
- "\xe7\x70\xd4\x09\x00\xa3\x76\xea\x52\x1f\x25\x1b\x05\x27\x3b\xef\x9c\x3a"
- "\x66\xf0\xbb\xc1\xe5\x04\x00\x00\x5c\xac\xb9\x2f\x96\x9f\xff\xcf\x76\x01"
- "\xaa\xa3\x4e\x0e\x18\xa8\xa7\x3a\xff\x0f\x8c\x15\xe7\xff\xe1\xf2\x7a\xca"
- "\xf3\xff\xf7\x06\x95\x07\x30\x7c\x55\x5b\x00\x70\xe9\x9d\x75\xab\x8f\xbe"
- "\x17\xef\x38\xf7\xf9\xff\x34\x3d\x73\x59\x00\x00\xc0\x40\x4d\xe7\x25\xa9"
- "\xd4\x8a\x73\x81\xd3\x51\xa9\xd4\x6a\x11\xd7\xf2\x7f\xf5\xaf\x26\x6b\x1b"
- "\xcd\xc6\x7c\x44\x7c\x36\x22\x7e\x3f\x53\xfd\x4c\x36\xbe\x90\xcf\x99\xb8"
- "\x3d\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x9c\x53\x9a\x26\x91\x02\x00\x00\x00\x63\x2d\xa2\xf2\x97\xa4"
- "\xb8\xff\xd7\xdc\xcc\xeb\xd3\xbd\xc7\x07\x9e\x4b\xfe\x3d\x93\x0f\x23\xe2"
- "\xa3\x9f\xdf\xac\xdc\x5e\xee\x74\x76\x17\xb2\xe9\xff\x38\x9e\xde\xb9\x73"
- "\xf3\x67\xf9\xf4\x37\x47\x71\x04\x03\x00\x00\x00\xe8\x75\xb4\x9f\x7e\xb4"
- "\x1f\x0f\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x17\xe9\xd1\xc3\x8f\x57\x8e\xca\x30\xe3\xfe\xed\x9b\x11\x31"
- "\x5b\x16\x7f\x32\xa6\xf2\xe1\x54\x54\x23\xe2\xf9\x7f\x26\x31\x79\x62\xbe"
- "\x24\x22\x26\x2e\x20\xfe\xe1\x27\x11\xf1\x62\x59\xfc\x24\x4b\x2b\x66\x8b"
- "\x2c\x7a\xe3\x57\x22\xe2\xca\x70\xe2\xbf\x9c\xa6\x69\x69\xfc\xab\x17\x10"
- "\x1f\x2e\xb3\xbb\xd9\xfa\xe7\xfd\xb2\xef\x5f\x25\x5e\xcd\x87\xe5\xdf\xff"
- "\xc9\xa2\x7c\x5a\xfd\xd7\x7f\x95\xe3\xf5\xdf\x44\x9f\xf5\xdf\xb5\x73\xc6"
- "\x78\xe9\xfe\xaf\xeb\x7d\xe3\x7f\x12\xf1\xd2\x64\xf9\xfa\xe7\x28\x7e\xd2"
- "\x27\xfe\x6b\x65\x0b\x2c\x79\x53\xbe\xff\xbd\x83\x83\x7e\xf1\xd3\x5f\x44"
- "\xcc\x95\xfe\xfe\x24\xa7\x62\xd5\x3b\x5b\x3b\xf5\xf6\xfe\xc1\x8d\x8d\xad"
- "\xe5\xf5\xc6\x7a\x63\x7b\x71\x71\xe1\xed\xa5\x77\x96\xde\x5a\x9a\xaf\xaf"
- "\x6d\x34\x1b\xc5\x63\x69\x8c\x1f\xbf\xfc\x9b\xff\xf5\x4c\xfa\x6f\xda\x95"
- "\xb7\x3f\xfa\xc4\x9f\x3d\xa3\xfd\xaf\x67\x95\xea\xc9\xc6\xf4\x86\x29\x82"
- "\xdd\xbf\xfd\xf0\xf3\xdd\x6a\xb5\x67\x11\x79\xfc\xeb\xaf\x95\x7f\xfe\x2f"
- "\x3e\x21\x7e\xf6\x37\xf1\x95\xe2\x77\x20\x7b\x7e\xee\xa8\x7e\xd8\xad\x9f"
- "\xf4\xca\xaf\xee\xbd\x52\x9a\x58\x11\x7f\xb5\x4f\xfb\x8f\x3f\xff\xac\x52"
- "\xd2\xfe\xeb\xfd\x16\xda\xe3\x8d\xef\xfe\xf0\x8f\xe7\x7c\x29\x00\x30\x04"
- "\xed\xfd\x83\xcd\xe5\x66\xb3\xb1\x3b\xf0\xca\x9d\x34\x4d\x87\x15\x4b\xe5"
- "\x19\xac\x4c\x3d\x1b\x69\xa8\x9c\x5d\xb9\x88\x23\x5b\x00\x00\xc0\xb3\xe6"
- "\xf1\x46\xff\xa8\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x80\xcb\xab\xbd\x9f\x4e\x0c\xfa\x72\x62\xbd\x31\x0f\x47\xd3\x54"
- "\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\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\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x80\x27\xfa\x7f\x00\x00\x00\xff\xff\xa2\xc2\xe3\xbd",
- 1277);
- syz_mount_image(
- /*fs=*/0x20001b40, /*dir=*/0x200047c0,
- /*flags=MS_POSIXACL|MS_RELATIME|MS_RDONLY|MS_NOSUID|0x40c*/ 0x21040f,
- /*opts=*/0x20000580, /*chdir=*/1, /*size=*/0x4fd, /*img=*/0x20003100);
- memcpy((void*)0x20000440, "./file1\000", 8);
- syscall(__NR_newfstatat, /*dfd=*/0xffffffffffffff9cul, /*file=*/0x20000440ul,
- /*statbuf=*/0x20000480ul, /*flag=AT_NO_AUTOMOUNT*/ 0x800ul);
- memcpy((void*)0x20000440, "./file1\000", 8);
- res = syscall(__NR_newfstatat, /*dfd=*/0xffffffffffffff9cul,
- /*file=*/0x20000440ul, /*statbuf=*/0x20000480ul,
- /*flag=AT_NO_AUTOMOUNT*/ 0x800ul);
- if (res != -1)
- r[9] = *(uint32_t*)0x2000049c;
- *(uint32_t*)0x20000540 = 0xa0;
- *(uint8_t*)0x20000544 = 0x19;
- *(uint16_t*)0x20000545 = 2;
- *(uint64_t*)0x20000547 = 0x2c89;
- *(uint8_t*)0x2000054f = 0;
- *(uint32_t*)0x20000550 = 0;
- *(uint64_t*)0x20000554 = 0;
- *(uint32_t*)0x2000055c = 0x44;
- *(uint32_t*)0x20000560 = r[5];
- *(uint32_t*)0x20000564 = r[9];
- *(uint64_t*)0x20000568 = 6;
- *(uint64_t*)0x20000570 = 0;
- *(uint64_t*)0x20000578 = 0x80000001;
- *(uint64_t*)0x20000580 = 0x72e;
- *(uint64_t*)0x20000588 = 0x800;
- *(uint64_t*)0x20000590 = 0x400;
- *(uint64_t*)0x20000598 = 7;
- *(uint64_t*)0x200005a0 = 0;
- *(uint64_t*)0x200005a8 = 0xffffffff00000000;
- *(uint64_t*)0x200005b0 = 0x80000001;
- *(uint64_t*)0x200005b8 = 0x400;
- *(uint64_t*)0x200005c0 = 1;
- *(uint64_t*)0x200005c8 = 0;
- *(uint64_t*)0x200005d0 = 7;
- *(uint64_t*)0x200005d8 = 0x771aeadc;
- syscall(__NR_write, /*fd=*/r[3], /*data=*/0x20000540ul, /*size=*/0xa0ul);
- *(uint32_t*)0x200001c0 = 0;
- *(uint32_t*)0x200001c4 = 0x80;
- *(uint8_t*)0x200001c8 = 1;
- *(uint8_t*)0x200001c9 = 0x40;
- *(uint8_t*)0x200001ca = 0x20;
- *(uint8_t*)0x200001cb = -1;
- *(uint32_t*)0x200001cc = 0;
- *(uint64_t*)0x200001d0 = 5;
- *(uint64_t*)0x200001d8 = 0x59000;
- *(uint64_t*)0x200001e0 = 4;
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 0, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 1, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 2, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 3, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 4, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 5, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 6, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 7, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 8, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 9, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 10, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 11, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 12, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 13, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 14, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 2, 15, 2);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 17, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 18, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 19, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 20, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 21, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 22, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 23, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 24, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 25, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 26, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 27, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 28, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 29, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 30, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 31, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 1, 32, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 33, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 34, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 35, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 36, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 37, 1);
- STORE_BY_BITMASK(uint64_t, , 0x200001e8, 0, 38, 26);
- *(uint32_t*)0x200001f0 = 0x2f1;
- *(uint32_t*)0x200001f4 = 6;
- *(uint64_t*)0x200001f8 = 0;
- *(uint64_t*)0x20000200 = 8;
- *(uint64_t*)0x20000208 = 0x1000;
- *(uint64_t*)0x20000210 = 6;
- *(uint32_t*)0x20000218 = 2;
- *(uint32_t*)0x2000021c = 0;
- *(uint64_t*)0x20000220 = 3;
- *(uint32_t*)0x20000228 = 0x1000;
- *(uint16_t*)0x2000022c = 0xa1e;
- *(uint16_t*)0x2000022e = 0;
- *(uint32_t*)0x20000230 = 8;
- *(uint32_t*)0x20000234 = 0;
- *(uint64_t*)0x20000238 = 4;
- res = syscall(__NR_perf_event_open, /*attr=*/0x200001c0ul, /*pid=*/r[2],
- /*cpu=*/9ul, /*group=*/r[0], /*flags=*/0ul);
- if (res != -1)
- r[10] = res;
- *(uint32_t*)0x20000600 = 3;
- *(uint32_t*)0x20000604 = 0x80;
- *(uint8_t*)0x20000608 = 0x1c;
- *(uint8_t*)0x20000609 = 2;
- *(uint8_t*)0x2000060a = 6;
- *(uint8_t*)0x2000060b = 0x81;
- *(uint32_t*)0x2000060c = 0;
- *(uint64_t*)0x20000610 = 0x5a4;
- *(uint64_t*)0x20000618 = 0x90;
- *(uint64_t*)0x20000620 = 3;
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 0, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 1, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 2, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 3, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 4, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 5, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 6, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 7, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 8, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 9, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 10, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 11, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 12, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 13, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 14, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 2, 15, 2);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 17, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 18, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 19, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 20, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 21, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 22, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 23, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 24, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 25, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 26, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 27, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 28, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 29, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 30, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 31, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 32, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 33, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 34, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 35, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 36, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 37, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 38, 26);
- *(uint32_t*)0x20000630 = 0x7ff;
- *(uint32_t*)0x20000634 = 0;
- *(uint64_t*)0x20000638 = 8;
- *(uint64_t*)0x20000640 = 8;
- *(uint64_t*)0x20000648 = 4;
- *(uint64_t*)0x20000650 = 5;
- *(uint32_t*)0x20000658 = 0xfff;
- *(uint32_t*)0x2000065c = 1;
- *(uint64_t*)0x20000660 = 6;
- *(uint32_t*)0x20000668 = 8;
- *(uint16_t*)0x2000066c = 6;
- *(uint16_t*)0x2000066e = 0;
- *(uint32_t*)0x20000670 = 6;
- *(uint32_t*)0x20000674 = 0;
- *(uint64_t*)0x20000678 = 0xc3;
- syscall(
- __NR_perf_event_open, /*attr=*/0x20000600ul, /*pid=*/0, /*cpu=*/4ul,
- /*group=*/r[10],
- /*flags=PERF_FLAG_FD_CLOEXEC|PERF_FLAG_FD_NO_GROUP|0xb2200ec1dacf7264*/
- 0xb2200ec1dacf726dul);
- *(uint32_t*)0x20000600 = 3;
- *(uint32_t*)0x20000604 = 0x80;
- *(uint8_t*)0x20000608 = 0x1c;
- *(uint8_t*)0x20000609 = 2;
- *(uint8_t*)0x2000060a = 6;
- *(uint8_t*)0x2000060b = 0x81;
- *(uint32_t*)0x2000060c = 0;
- *(uint64_t*)0x20000610 = 0x5a4;
- *(uint64_t*)0x20000618 = 0x90;
- *(uint64_t*)0x20000620 = 3;
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 0, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 1, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 2, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 3, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 4, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 5, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 6, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 7, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 8, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 9, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 10, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 11, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 12, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 13, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 14, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 2, 15, 2);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 17, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 18, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 19, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 20, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 21, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 22, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 23, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 24, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 25, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 26, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 27, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 28, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 29, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 30, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 31, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 32, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 33, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 34, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 35, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 1, 36, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 37, 1);
- STORE_BY_BITMASK(uint64_t, , 0x20000628, 0, 38, 26);
- *(uint32_t*)0x20000630 = 0x7ff;
- *(uint32_t*)0x20000634 = 0;
- *(uint64_t*)0x20000638 = 8;
- *(uint64_t*)0x20000640 = 8;
- *(uint64_t*)0x20000648 = 4;
- *(uint64_t*)0x20000650 = 5;
- *(uint32_t*)0x20000658 = 0xfff;
- *(uint32_t*)0x2000065c = 1;
- *(uint64_t*)0x20000660 = 6;
- *(uint32_t*)0x20000668 = 8;
- *(uint16_t*)0x2000066c = 6;
- *(uint16_t*)0x2000066e = 0;
- *(uint32_t*)0x20000670 = 6;
- *(uint32_t*)0x20000674 = 0;
- *(uint64_t*)0x20000678 = 0xc3;
- syscall(
- __NR_perf_event_open, /*attr=*/0x20000600ul, /*pid=*/0, /*cpu=*/4ul,
- /*group=*/r[10],
- /*flags=PERF_FLAG_FD_CLOEXEC|PERF_FLAG_FD_NO_GROUP|0xb2200ec1dacf7264*/
- 0xb2200ec1dacf726dul);
- syscall(__NR_ioctl, /*fd=*/-1, /*cmd=*/0xc0bc5310, /*arg=*/0ul);
- syscall(__NR_ptrace, /*req=PTRACE_ATTACH*/ 0x10ul, /*pid=*/r[2], 0, 0);
- syscall(__NR_ptrace, /*req=PTRACE_ATTACH*/ 0x10ul, /*pid=*/r[2], 0, 0);
- syscall(__NR_ptrace, /*req=PTRACE_POKEDATA|0xfffffffffffffffa*/ -1, /*pid=*/0,
- /*addr=*/0x200000c0ul, /*data=*/0ul);
- syscall(__NR_ptrace, /*req=PTRACE_POKEDATA|0xfffffffffffffffa*/ -1, /*pid=*/0,
- /*addr=*/0x200000c0ul, /*data=*/0ul);
- syscall(__NR_read, /*fd=*/r[1], /*buf=*/0x20000040ul, /*count=*/0x2bul);
- syscall(__NR_ioctl, /*fd=*/r[10], /*cmd=*/0x6611, 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment