148 Commits

Author SHA1 Message Date
Dmitry Vyukov
05b38edce2 vm/qemu: fix output reading bug
If qemu boot retries several times due to busy tcp port,
it ends up with several output reading goroutines.
That completely messes output.
2015-12-24 12:06:04 +01:00
Dmitry Vyukov
58509c75a2 prog: remove padding checking
So far it has found only false positives.
Let's leave this to KMSAN.
2015-12-23 19:58:15 +01:00
Dmitry Vyukov
0785179903 prog: fix parse test 2015-12-23 19:47:20 +01:00
Dmitry Vyukov
8922bd4029 update documentation 2015-12-23 19:33:12 +01:00
Dmitry Vyukov
d4180ca5c7 tools/syz-repro: add reproduction tool 2015-12-23 19:19:45 +01:00
Dmitry Vyukov
546347d931 all: reformat 2015-12-23 19:18:58 +01:00
Dmitry Vyukov
1c801e8512 prog: factor out execution log parsing functionality
It will be needed to reproduction tool.
2015-12-23 19:18:13 +01:00
Dmitry Vyukov
2eb388c0f8 vm: improve VM interface
Current interface is suitable only for running syz-fuzzer.
Make the interface more generic (boot, copy file, run an arbitrary command).
This allows to build other tools on top of vm package
(e.g. reproducer creation).
2015-12-23 19:12:45 +01:00
Dmitry Vyukov
5c0a662198 sys: fix padding insertion
Padding was not inserted into indirect structs.
2015-12-23 19:10:41 +01:00
Dmitry Vyukov
7f3186abbb execprog: detect executor-detected bugs 2015-12-23 19:09:48 +01:00
Dmitry Vyukov
47e55508d0 sys: sort new syscalls 2015-12-23 19:09:24 +01:00
Dmitry Vyukov
b4e2d91732 sys: expose new syscall numbers programmatically
This will be required for reproduction tool.
2015-12-23 19:05:15 +01:00
Dmitry Vyukov
1f580dac3d fileutil: new package
Move some file utilities into a separate package.
2015-12-23 13:59:29 +01:00
Dmitry Vyukov
2fa51b4807 executor: fix collide mode
Don't wait for every other call.
2015-12-23 13:50:40 +01:00
Dmitry Vyukov
c896644ab8 csource: reformat 2015-12-23 13:50:02 +01:00
Dmitry Vyukov
28571fdc32 prog: glue mmap's together during minimization 2015-12-23 13:47:45 +01:00
Dmitry Vyukov
6af1c1f308 execprog: replace loop flag with repeat
This will be necessary for reproduction tool.
It needs to run a program a fixed number of times
instead of loop infinitely.
2015-12-23 13:39:14 +01:00
Dmitry Vyukov
e253cbc79f csource: new package
Move C source generation into a separate package.
Prog is too bloated already.
2015-12-23 13:38:31 +01:00
Dmitry Vyukov
071ad4e91f sys: fix AT_FDCWD handling
AT_FDCWD is not a flag, it is an fd.
2015-12-23 13:36:13 +01:00
Dmitry Vyukov
def15a423d Merge pull request #8 from daviddrysdale/doc-update
Minor tweaks
2015-12-21 14:41:57 +01:00
David Drysdale
27e09c9145 Add 'all-tools' target to build tools
Also remove leftover mention of 'master'
2015-12-21 13:29:09 +00:00
David Drysdale
be3db30b0b Update docs for rename and removal of master
Updated process structure diagram, fix a few mentions of
old setup in README.
2015-12-21 12:37:04 +00:00
David Drysdale
58359bf421 Add David Drysdale to CONTRIBUTORS 2015-12-21 12:15:03 +00:00
Dmitry Vyukov
bd75706280 add a flag to disable setpgid syscall
It is broken on some of our test systems.
2015-12-17 17:31:11 +01:00
Dmitry Vyukov
bbf4e35323 executor: export syscall execution results
Errno can be used to guide fuzzing, or detect not implemented syscalls.
2015-12-17 17:31:11 +01:00
Dmitry Vyukov
bfc05fb926 manager: fix persistent corpus minimization 2015-12-17 17:31:11 +01:00
Dmitry Vyukov
7b5574e9d7 rpctype: remove master messages 2015-12-17 17:31:11 +01:00
Dmitry Vyukov
f2ec18c03e Update README.md 2015-12-17 16:21:46 +01:00
Dmitry Vyukov
6f03b80329 Update README.md 2015-12-17 16:20:12 +01:00
Dmitry Vyukov
8e7ca7c5ff remove master and naming overhaul
Remove master process entirely, it is not useful in its current form.
We first need to understand what we want from it, and them re-implement it.

Prefix all binaries with syz- to avoid name clashes.
2015-12-17 16:06:33 +01:00
Dmitry Vyukov
06e6726537 sys: fix typos 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
41126671ec manager: allow to run fuzzer under root 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
72742865dd sys: add bluetooth support 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
d665e11e9d move Gate type to ipc package and use it in stress tool
This allows to print what programs stress executes.
2015-12-17 14:38:46 +01:00
Dmitry Vyukov
ce0bb4c05d ipc: fix removal of temp dir if chmod fails 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
3d96383e0e executor: allow to wait for child processes without sigtimedwait
We've hit 2 systems that mishandle sigtimedwait.
2015-12-17 14:38:46 +01:00
Dmitry Vyukov
6f71e5dce1 sys: add PF_NFC support 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
6922b20d36 sys: workaround Go compiler bug
see http://golang.org/issue/13579
2015-12-17 14:38:46 +01:00
Dmitry Vyukov
9980a72713 sys: automatically add padding to structs 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
48d0a3662e tools/stress: minor improvements 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
c4b809f85f sys: add support for PF_ALG 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
db6bf8626d detect UBSAN error reports 2015-12-17 14:38:46 +01:00
Dmitry Vyukov
d3c088db4a Merge pull request #7 from daviddrysdale/doc-update
Tweaks for current syzkaller
2015-12-16 16:48:13 +01:00
David Drysdale
6b2d1faa49 Cope with missing /sys/kernel/debug/kmemleak
If the kernel under test has not been built with kmemleak support,
then the debugfs file will not exist.  If memory leak detection is
not turned on, then keep going in this situation.
2015-12-16 12:58:36 +00:00
David Drysdale
9d3f6209bf Mention need for mounted debugfs 2015-12-16 09:47:38 +00:00
Dmitry Vyukov
22e64dbcb7 Merge pull request #6 from daviddrysdale/doc-update
Update diagram to match new location of coverage info
2015-12-14 09:33:37 +01:00
David Drysdale
513967f409 Update diagram to match new location of coverage info
Commmit bb158eaeab38 shifted to use new location where
coverage information gets emitted from the kernel (from
/proc/cover to /sys/kernel/debug/kcov) so update the process
structure diagram to match.
2015-12-14 08:04:16 +00:00
Dmitry Vyukov
8393d85f8c Update README.md 2015-12-09 15:16:40 +01:00
Dmitry Vyukov
9741cba56b Update README.md 2015-12-04 19:32:35 +01:00
Dmitry Vyukov
cf2089138e support kmemleak
If you set "leak":true in manager config, it will do leak checking.
It's quite slow, though. Also there seems to be false positives
and/or non-reproducible leaks.
2015-12-03 20:38:33 +01:00