aboutsummaryrefslogtreecommitdiffstats
path: root/executor
Commit message (Collapse)AuthorAgeFilesLines
...
* executor: terminate on corrupted coverageDmitry Vyukov2018-05-141-1/+1
| | | | | | New measures still does not help against fuzzer producing fake corrupted coverage. Try to terminate instantly as we detect bad coverage.
* executor: filter out invalid PCs on linux/x86_64Dmitry Vyukov2018-05-146-3/+62
| | | | | Fuzzer manages to corrupt output region and write random coverage again and again. Do a sanity range check on coverage PCs to filter out invalid ones.
* executor: randomize output region addrDmitry Vyukov2018-05-141-7/+7
| | | | | Fuzzer manages to corrupt output region and write random coverage again and again. Randomize output region addr to make it harder.
* executor: fix strncpy compile errorIoana Ciornei2018-05-131-1/+1
| | | | | | | | | gcc8 is stricter when dealing with strings and strncpy and demands that the size of the actual string to be copied to be explicitly smaller than the size of the destination, just to make sure the NULL terminator is taken into considerantion. This patch fixes the issue. Signed-off-by: Ioana Ciornei <ciorneiioana@gmail.com>
* sys/linux: regenerate video4linux consts on the right treeDmitry Vyukov2018-05-111-106/+5
| | | | | Now generated on: https://source.codeaurora.org/quic/la/kernel/msm-4.9 msm-4.9
* sys/linux: add missing consts for video4linux.txtDmitry Vyukov2018-05-111-10/+525
| | | | | | | | | | | | | For now other arches are regenerated on upstream tree. It does not contain a bunch of consts, so we define them to 1 for now. arm64 consts are left intact. video4linux.txt is added to "android" files in syz-extract, so that future make extract runs don't overwrite arm64 consts. Also fix VIDIOC_G_FBUF argument direction, currently tests crash with: panic: call ioctl$VIDIOC_G_FBUF: pointer arg 'buffer' has output direction [recovered] panic: call ioctl$VIDIOC_G_FBUF: pointer arg 'buffer' has output direction
* sys/linux: add AF_NETLINK/NETLINK_ROUTE SCHED supportHangbin Liu2018-05-081-10/+15
| | | | | | | | | | | | Update #533 As TC(net sched) is a large group, I separate it from socket_netlink_route.txt. Currently I only implement the framework with two qdisc/tclass/filters. I will add the others later. v2: Fix tcm_handle major and minor order. Add tcm_handle_offsets. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
* sys: dedup mmap code across OSesDmitry Vyukov2018-05-061-4/+4
| | | | Update #538
* sys: move generate files to separate packagesDmitry Vyukov2018-05-057-13/+13
| | | | | | | | | Move generated files to gen subdir. This allows to: 1. Rebuild init.go without rebuilding generated code. 2. Excluding generated files from gometalinter checking. This makes faster and consume less memory. Update #538
* gometalinter: enable misspellDmitry Vyukov2018-05-031-2/+2
| | | | Update #538
* gometalinter: enable package comment checkingDmitry Vyukov2018-05-037-13/+13
| | | | Update #538
* executor: fix read_cover_size signatureDmitry Vyukov2018-04-304-4/+4
|
* sys/linux: add few more filesystems with imagesDmitry Vyukov2018-04-291-10/+35
|
* sys/linux: describe block device ioctlsDmitry Vyukov2018-04-291-10/+340
| | | | | | Describe block device ioctls. Describe sg device ioctls. Add few more devices.
* sys/linux: a bunch of assorted improvementsDmitry Vyukov2018-04-271-10/+60
|
* sys/linux: extend namespace desciptionsDmitry Vyukov2018-04-271-10/+15
| | | | | Slightly extend namespace descriptions and move them to a separate file.
* executor: support cover on 32-bit kernelsDmitry Vyukov2018-04-273-71/+101
| | | | Detect kernel bitness and properly extract coverage on 32-bit kernels.
* sys/linux/socket_netlink_route: add routing rulesHangbin Liu2018-04-251-5/+5
| | | | | | | | | | | | | | Also fix RTA_MULTIPATH data type. We only need struct rtnexthop, no need to use array type. v1 -> v2: Use uid and sock_port instead of int32/16. Use flags for FRA_PROTOCOL and FRA_IP_PROTO. Add type fib_rule_hdr because even though the structure is same with rtmsg. The table, action and flags values are not same. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
* executor: don't fail when ipv6 is not enabledDmitry Vyukov2018-04-201-1/+7
| | | | | | Check in checkpoint_iptables is not enough as reset_iptables will fail even if no tables enabled. Add similar check to reset_iptables.
* executor: increase max image size to 128MBDmitry Vyukov2018-04-191-3/+3
| | | | Images of some filesystems need to be that large (xfs, btrfs, f2fs).
* sys/linux: add f2fs supportDmitry Vyukov2018-04-191-10/+15
|
* sys/linux: add i2c generic descriptionDenis Efremov2018-04-191-10/+60
| | | | Basic description of i2c from SIL2LinuxMP workshop.
* sys/linux/socket_netlink_route: update RTM_GETSTATS PAYLOAD formatHangbin Liu2018-04-191-5/+5
| | | | | | | | Update RTM_GETSTATS PAYLOAD format. Also fix ipv4_getroute and ipmr_getroute PAYLOAD format. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
* executor: support 32-bit kernelsDmitry Vyukov2018-04-162-20/+26
| | | | | There is no autodetection yet, but at least bitness is encapsulated in cover_t type.
* executor: don't fail if IPv6 is not enabledDmitry Vyukov2018-04-161-1/+7
|
* executor: add two slave interfaces for bridge,bond,teamHangbin Liu2018-04-132-12/+29
| | | | | | | | Bridge device is used for forwarding. Bond/team device is used for load balance and fail over. So it would make more sense to add two slave interfaces for these devices. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
* sys/linux/rdma_cm: remove RDMA_PS_SDPHangbin Liu2018-04-131-5/+5
| | | | | | | RDMA_PS_SDP has been removed since commit 1b90d3002e3ee ("RDMA/CMA: remove RDMA_PS_SDP") Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
* sys/linux: add veth devices to devnamesDmitry Vyukov2018-04-112-6/+9
| | | | Also comment new veth code for future me.
* executor: add salve interface for bond0/team0Hangbin Liu2018-04-111-2/+6
| | | | | | | | | | | | Add a veth pair with name bond/team_slave and set their master to bond0/team0. Remove veth from devtypes because the cmd `ip link add veth0 type veth` will actually failed with "RTNETLINK answers: File exists" and no veth interface created. When create veth device, kernel will create a pair of veth, so no need to create them one by one. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
* sys/linux: improve team descriptionsDmitry Vyukov2018-04-061-10/+15
| | | | | | | | | | | | | | | | | | | 1. Create ifindex_team, because TEAM_ATTR_TEAM_IFINDEX must always point to a team device. 2. Remove output only attributes like team_attr_item_port, TEAM_ATTR_LIST_PORT, TEAM_ATTR_OPTION_CHANGED. 3. Restructure team_nl_option_policy: we always want TEAM_ATTR_OPTION_NAME/TYPE/DATA + optionally TEAM_ATTR_OPTION_ARRAY_INDEX and TEAM_ATTR_OPTION_PORT_IFINDEX. 4. Provide specialized team_nl_option_policy_per_port and team_nl_option_policy_array. 5. Make team_attr_option varlen. 6. Remove unnecessary indirection via team_attr_list_option/team_attr_list_port. 7. Fix data type for bpf_hash_func and lb_tx_hash_to_port_mapping.
* executor: create team deviceDmitry Vyukov2018-04-061-6/+8
|
* sys/linux: add netlink generic team descriptionsHangbin Liu2018-04-061-10/+35
| | | | Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
* executor: update to support FreeBSD kcovMitchell Horne2018-04-051-0/+51
| | | | | | Make the required changes to the BSD executor file to interface with FreeBSD's kernel coverage implementation. This will allow coverage to be used when running syzkaller on this platform.
* sys/linux: test various binfmt's in execveDmitry Vyukov2018-04-022-10/+62
|
* pkg/compiler: support non-zero terminated filenamesDmitry Vyukov2018-04-021-5/+5
| | | | | | | | | | | | | | | Now file names become: string[filename] with a possibility of using other string features: stringnoz[filename] string[filename, CONST_SIZE] and filename is left as type alias as it is commonly used: type filename string[filename]
* executor: fix unchecked result warningDmitry Vyukov2018-04-011-1/+3
|
* sys/linux: add support for reading partition tablesDmitry Vyukov2018-04-012-13/+110
|
* sys/linux: fix misspelled const nameDmitry Vyukov2018-03-311-5/+5
| | | | Fixes #552
* executor: fix compilation warningsDmitry Vyukov2018-03-301-14/+8
| | | | | | | | SYS_memfd_create define produces warning in scource if system headers already contain the definition (we strip all ifdefs!). The same is true for CLONE_NEWCGROUP but we just never hit it yet. Also fix format string for 32 bits. Also fix potential uninit var in csource, and a missing new line.
* sys/linux: add support for mounting filesystem imagesDmitry Vyukov2018-03-305-21/+249
|
* sys/linux: regenerate filesDmitry Vyukov2018-03-291-5/+5
| | | | | A previous commit included some non-regenerateed files. Regenerate them now.
* executor: don't let syscalls fail with errno=0Dmitry Vyukov2018-03-281-0/+2
| | | | | Our syz syscalls may mishandle errno in some cases and fail with errno=0. Fix it up.
* executor: rework cgroups supportDmitry Vyukov2018-03-272-43/+39
| | | | | | | | | | Turns out creating a cgroup per test is too expensive. Moreover, it leads to hanged tasks as cgroup destruction is asynchronous and overloads kernel work queues. Create only a single cgroup per proc, but restrict descriptions to mess with that single group, instead test processes create own nested cgroups for messing.
* sys/linux: add IPVS descriptionsDmitry Vyukov2018-03-261-10/+195
| | | | Update #533
* executor: fix reset of bridge netfilterDmitry Vyukov2018-03-251-0/+2
| | | | We left entries non-zero, so memcmp always failed.
* sys/linux: add cgroup descriptionsDmitry Vyukov2018-03-256-168/+347
|
* sys/linux: add guehdr for udp packetsDmitry Vyukov2018-03-211-5/+5
|
* sys/linux: add netlink fou descriptionsDmitry Vyukov2018-03-212-10/+84
|
* sys/linux: fix nlattr alignmentDmitry Vyukov2018-03-211-5/+5
| | | | It seems that alignment is never present in the nlattr.
* fuchsia: Update syzkaller to build with current Fuchsia API. (#543)Julia Hansbrough2018-03-212-47/+23
| | | | | | | | | | | | | | | | | | | | | * fuchsia: Fix the `extractor` tool. The include path in Zircon has changed; updated syz-extract/fuchsia.go to include this, and re-ran extract to get updated *.const files. * fuchsia: Update syzkaller to build with current Fuchsia API. Fuchsia doesn't have a stable API right now, so alas, this will probably continue to change until that's nailed down. But, useful to get this up-to-date at least. Relevant notes: * zx_channel_call_finish and _retry aren't technically public; leave them out until we have a less-cludgy way to expose them * musl supports setjmp/longjmp but not _setjmp/_longjump * remove some unsupported syscalls * update the build invocation