aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
Commit message (Collapse)AuthorAgeFilesLines
* pkg/csource: use 0 for missing syscall argsDmitry Vyukov2018-12-275-830/+830
| | | | | | | | | | | | | | We don't specify trailing unused args for some syscalls (e.g. ioctl that does not use its arg). Executor always filled tailing unsed args with 0's but pkg/csource didn't. Some such syscalls actually check that the unsed arg is 0 and as the result failed with C repro. We could statically check and eliminate all such cases, but it turns out the warning fires in 1500+ cases: https://gist.githubusercontent.com/dvyukov/e59ba1d9a211ee32fa0ba94fab86a943/raw/a3ace5a63f7281f0298f51ea9842ead1e4713418/gistfile1.txt So instead fill such args with 0's in pkg/csource too.
* executor: create more net devices on linuxDmitry Vyukov2018-12-267-358/+358
|
* executor: restrict ipc resource usageDmitry Vyukov2018-12-261-0/+5
| | | | | For context see: https://groups.google.com/d/msg/syzkaller-bugs/ZaBzAJbn6i8/Py9FVlAqDQAJ
* sys/linux: add network drop monitor supportDmitry Vyukov2018-12-2411-5/+404
|
* sys/linux: add udmabuf descriptionsDmitry Vyukov2018-12-2412-13/+263
|
* sys/linux: add basic AF_CAIF descriptionsDmitry Vyukov2018-12-2412-5/+652
|
* sys/linux: add basic X25 descriptionsDmitry Vyukov2018-12-2430-348/+1800
|
* sys/linux: extend AX25/ROSE/NETROM descriptionsDmitry Vyukov2018-12-2438-684/+3706
|
* sys/linux: add CRYPTO_MSG_GETSTATDmitry Vyukov2018-12-2211-5/+66
|
* sys/linux: add RTM_NEWNSID/RTM_GETNSIDDmitry Vyukov2018-12-2222-74/+334
|
* sys/linux: add fs-verity ioctlsVictor Hsieh2018-12-1811-5/+136
| | | | | | | | This adds 2 ioctls and an argument type: - FS_IOC_ENABLE_VERITY - FS_IOC_MEASURE_VERITY - struct fsverity_digest Note fs-verity on-disk structs are not yet added.
* sys/linux: add basic tipc testDmitry Vyukov2018-12-122-0/+8
|
* prog: support AUTO args in programsDmitry Vyukov2018-12-105-33/+33
| | | | | | | | | | | | | | | AUTO arguments can be used for: - consts - lens - pointers For const's and len's AUTO is replaced with the natural value, addresses for AUTO pointers are allocated linearly. This greatly simplifies writing test programs by hand as most of the time we want these natural values. Update tests to use AUTO.
* sys: consistently mark all paddings as const[0]Dmitry Vyukov2018-12-1019-265/+274
|
* prog: implement strict parsing modeDmitry Vyukov2018-12-101-2/+2
| | | | | | | Add bulk of checks for strict parsing mode. Probably not complete, but we can extend then in future as needed. Turns out we can't easily use it for serialized programs as they omit default args and during deserialization it looks like missing args.
* prog: introduce strict parsing modeDmitry Vyukov2018-12-101-1/+1
| | | | | | | | | | | Over time we relaxed parsing to handle all kinds of invalid programs (excessive/missing args, wrong types, etc). This is useful when reading old programs from corpus. But this is harmful for e.g. reading test inputs as they can become arbitrary outdated. For runtests which creates additional problem of executing not what is actually written in the test (or at least what author meant). Add strict parsing mode that does not tolerate any errors. For now it just checks excessive syscall arguments.
* sys/linux: add AF_TIPC netlink interface and packet formatsDmitry Vyukov2018-12-0924-85/+10634
|
* sys/linux: add AF_TIPC descriptionsDmitry Vyukov2018-12-0912-5/+1988
|
* sys/linux: socketpair returns sockets not just fd'sDmitry Vyukov2018-12-096-11/+36
|
* sys/linux: improve recvmsg descriptionsMichael Tuexen2018-12-088-35/+137
|
* sys: remove socketpair for AF_INET and AF_INET6Michael Tüxen2018-12-0471-1061/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * OpebBSD: remove socketpair() for AF_INET and AF_INET6. socketpair() is only supported on AF_UNIX. * NetBSD: remove socketpair() for AF_INET and AF_INET6. socketpair() is only supported for AF_UNIX. * FreeBSD: remove socketpair() for AF_INET and AF_INET6. socketpair() only supports AF_UNIX. * Linux: remove socketpair for AF_INET and AF_INET6. socketpair only supports AF_UNIX. * Autogenerated files. These are manually generated for all platforms you are not running on. FreeBSD in this case. * executor: rebase. * sys/freebsd: rebase. * sys/linux: use AF_UNIX based socketpair for nbd. This was suggested by Dmitry. Fixes #845
* removing trace2syz constants and moving rand_addr as the first ipv4_addr optionShankara Pailoor2018-11-3012-450/+22
|
* reordering unions for trace2syzShankara Pailoor2018-11-257-17/+17
|
* removing trace2syz constantsShankara Pailoor2018-11-2417-1132/+5
|
* sys/linux: update test for changed arch_prctl descriptionsDmitry Vyukov2018-11-191-4/+4
|
* sys/linux: refine tcp_zerocopy_receiveDmitry Vyukov2018-11-176-14/+13
| | | | Use the new vma64 now that we have it.
* sys/linux: refine description for PR_SET_MMDmitry Vyukov2018-11-1711-33/+326
|
* sys/linux: modernize arch_prctl descriptionsDmitry Vyukov2018-11-178-10/+105
|
* sys/linux: modernize prctl descriptionsDmitry Vyukov2018-11-1711-138/+1362
| | | | Use one syscall per command, refine arguments, etc.
* sys/linux: move prctl to a separate fileDmitry Vyukov2018-11-1712-366/+378
|
* sys/linux: refine tcp repair descriptionsDmitry Vyukov2018-11-1711-65/+464
|
* 1) making bpf_insn varlen, 2) changing bpf_generic to match the struct ↵Shankara Pailoor2018-11-126-17/+23
| | | | definition in linux to make trace2syz generation simpler
* sys/linux: add vimc/vivid/vim2m/vicodec/swradio/radio/vbi/cec devicesDmitry Vyukov2018-11-106-5/+325
| | | | | | Create planar and non-planar vivid devices. Create each for each test process. Add swradio/radio/vbi/cec media devices.
* sys/linux: add /dev/dlm* devicesDmitry Vyukov2018-11-106-5/+98
|
* sys/linux: regenerate on latest kernelDmitry Vyukov2018-11-1011-21/+20
|
* sys/linux: limit init_module size argumentDmitry Vyukov2018-10-301-0/+7
| | | | | | | Kernel tries to vmalloc whatever we pass as size and it's not accounted against memcg. As the result it can lead to massive OOM kills of everything running on the machine. Strictly saying, the same applies to finit_module with a sparse file too, but there is no simple way to handle that.
* sys/linux: adding constants for trace2syz to socketsshankarapailoor2018-10-3023-11/+148
|
* sys/linux: add perf, kvm, btrfs consts for trace2syzshankarapailoor2018-10-3029-5/+572
|
* sys/linux: add additional constants for trace2syz to bpfShankara Pailoor2018-10-3011-41/+541
| | | | Fixes #783
* sys/linux: fix up descriptionsDmitry Vyukov2018-10-3012-59/+60
| | | | | | | 1. Extract consts on the latest linux tree. 2. Don't manually define O_TMPFILE/O_ACCMODE/_LINUX_CAPABILITY_VERSION_N, they are defined in kernel headers. 3. Don't use CLOCK_SGI_CYCLE as clock id, it's not implemented.
* sys/linux: add additional constants for trace2syzshankarapailoor2018-10-3016-112/+1771
|
* sys/linux: fix SIOCGIFCONF constDmitry Vyukov2018-10-2911-11/+21
|
* sys/linux: fix IP6T_SO_GET_INFO constDmitry Vyukov2018-10-2911-11/+16
| | | | Fix copy-paste error.
* sys/linux: open /dev/media* filesDmitry Vyukov2018-10-287-37/+37
| | | | Also remove the second syscall for opening of /dev/fd*.
* sys/linux: add "ofb" crypto-somethingDmitry Vyukov2018-10-281-0/+1
|
* sys/linux: slightly refine perf descriptionsDmitry Vyukov2018-10-2811-22/+75
| | | | | CPU argument can be -1. It makes sense to mmap perf fd.
* sys/syz-extract: support missing arch headersDmitry Vyukov2018-10-2817-49/+795
| | | | | | | | The latest Linux kernel misses some arch-specific headers on some archs: asm/a.out.h asm/prctl.h asm/mce.h Support that.
* sys/linux: floppy interface descriptionDenis Efremov2018-10-289-5/+1368
| | | | | | | | | | For floppy fuzzing you need to enable: 1) CONFIG_BLK_DEV_FD in your kernel configuration 2) "cmdline": " -fda FLOPPY.img " in syzkaller configuration Signed-off-by: Denis Efremov <efremov@linux.com> Signed-off-by: Alexander Popov <alex.popov@linux.com>
* sys: check that target consts are definedDmitry Vyukov2018-10-191-20/+30
| | | | | | | | | | | | | | Currently when we get target consts with target.ConstMap["name"] during target initialization, we just get 0 for missing consts. This is error-prone as we can mis-type a const, or a const may be undefined only on some archs (as we have common unix code shared between several OSes). Check that all the consts are actually defined. The check detects several violations, to fix them: 1. move mremap to linux as it's only defined on linux 2. move S_IFMT to openbsd, as it's only defined and used on openbsd 3. define missing MAP_ANONYMOUS for freebsd and netbsd 4. fix extract for netbsd
* sys/linux: prohibit FAN_OPEN_PERM and FAN_ACCESS_PERMDmitry Vyukov2018-10-159-23/+196
| | | | | | | FAN_OPEN_PERM and FAN_ACCESS_PERM require the program to reply to open requests. If that does not happen, the program will hang in an unkillable state forever. See the following bug for details: https://groups.google.com/d/msg/syzkaller-bugs/pD-vbqJu6U0/kGH30p3lBgAJ