From 6fe61c6bc722931e08eefbbcf3a270af74997ef8 Mon Sep 17 00:00:00 2001 From: Stefano Duo Date: Sun, 16 Aug 2020 15:22:35 +0000 Subject: executor/common_linux.go: fix build breakage for Linux 4.14 Locally define structures and constants required by syz_fuse_handle_req() and remove linux/fuse.h. dependency. Reported-by: syzbot+f5f98e1608b272285aa5@syzkaller.appspotmail.com --- pkg/csource/generated.go | 76 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 5 deletions(-) (limited to 'pkg') diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go index 83781ded9..fae8005ae 100644 --- a/pkg/csource/generated.go +++ b/pkg/csource/generated.go @@ -8932,11 +8932,78 @@ static void setup_usb() #if SYZ_EXECUTOR || __NR_syz_fuse_handle_req #include -#include #include #include #include #include +#define FUSE_MIN_READ_BUFFER 8192 +enum fuse_opcode { + FUSE_LOOKUP = 1, + FUSE_FORGET = 2, + FUSE_GETATTR = 3, + FUSE_SETATTR = 4, + FUSE_READLINK = 5, + FUSE_SYMLINK = 6, + FUSE_MKNOD = 8, + FUSE_MKDIR = 9, + FUSE_UNLINK = 10, + FUSE_RMDIR = 11, + FUSE_RENAME = 12, + FUSE_LINK = 13, + FUSE_OPEN = 14, + FUSE_READ = 15, + FUSE_WRITE = 16, + FUSE_STATFS = 17, + FUSE_RELEASE = 18, + FUSE_FSYNC = 20, + FUSE_SETXATTR = 21, + FUSE_GETXATTR = 22, + FUSE_LISTXATTR = 23, + FUSE_REMOVEXATTR = 24, + FUSE_FLUSH = 25, + FUSE_INIT = 26, + FUSE_OPENDIR = 27, + FUSE_READDIR = 28, + FUSE_RELEASEDIR = 29, + FUSE_FSYNCDIR = 30, + FUSE_GETLK = 31, + FUSE_SETLK = 32, + FUSE_SETLKW = 33, + FUSE_ACCESS = 34, + FUSE_CREATE = 35, + FUSE_INTERRUPT = 36, + FUSE_BMAP = 37, + FUSE_DESTROY = 38, + FUSE_IOCTL = 39, + FUSE_POLL = 40, + FUSE_NOTIFY_REPLY = 41, + FUSE_BATCH_FORGET = 42, + FUSE_FALLOCATE = 43, + FUSE_READDIRPLUS = 44, + FUSE_RENAME2 = 45, + FUSE_LSEEK = 46, + FUSE_COPY_FILE_RANGE = 47, + FUSE_SETUPMAPPING = 48, + FUSE_REMOVEMAPPING = 49, + CUSE_INIT = 4096, + CUSE_INIT_BSWAP_RESERVED = 1048576, + FUSE_INIT_BSWAP_RESERVED = 436207616, +}; +struct fuse_in_header { + uint32 len; + uint32 opcode; + uint64 unique; + uint64 nodeid; + uint32 uid; + uint32 gid; + uint32 pid; + uint32 padding; +}; +struct fuse_out_header { + uint32 len; + uint32 error; + uint64 unique; +}; struct syz_fuse_req_out { struct fuse_out_header* init; struct fuse_out_header* lseek; @@ -8955,10 +9022,9 @@ struct syz_fuse_req_out { struct fuse_out_header* create_open; struct fuse_out_header* ioctl; }; -static int -fuse_send_response(int fd, - const struct fuse_in_header* in_hdr, - struct fuse_out_header* out_hdr) +static int fuse_send_response(int fd, + const struct fuse_in_header* in_hdr, + struct fuse_out_header* out_hdr) { if (!out_hdr) { debug("fuse_send_response: received a NULL out_hdr\n"); -- cgit mrf-deployment