Dmitry Vyukov
9f9ae3fcc3
tools/syz-upgrade: helper tool for corpus format upgrades
2015-12-28 12:49:19 +01:00
Dmitry Vyukov
7aee64145f
host: detect more unsupported syscalls
2015-12-28 10:45:30 +01:00
Dmitry Vyukov
4d3db6d4c8
host: detect unsupported syscalls
...
Also detect transitively unsupported syscalls,
that is, syscalls for which all syscalls that can create
input arguments are disabled.
2015-12-27 12:20:00 +01:00
Dmitry Vyukov
524a2ae38f
sysgen: fix syscall number assignment for syzkalls
2015-12-24 21:27:21 +01:00
Dmitry Vyukov
a9a7744776
executor: get rid of sigtimedwait
...
Wait with spin loop instead.
See the comment for explanation.
2015-12-24 20:29:48 +01:00
Dmitry Vyukov
293e915415
vm: fix crash message extraction regexp
...
First, "cut here" is not interesting as it always follows
by a more descriptive message.
Unreferenced object is interesting.
Also, strip \r at the end.
Add a test.
2015-12-24 19:55:19 +01:00
Dmitry Vyukov
d9b493f203
executor: don't use WUNTRACED in wait
...
WUNTRACED wait returns when child has stopped.
That's not what we want to wait for.
If it's stopped we need to timeout wait and kill
the stopped child.
2015-12-24 19:14:15 +01:00
Dmitry Vyukov
af4e0c0b7a
sysgen: pull in syscall numbers from kernel headers
...
Syscall numbers for different architectures are now pulled in
from kernel headers. This solves 2 problems:
- we don't need to hardcode numbers for new syscalls (that don't present in typical distro headers)
- we have correct number for different archs (previously hardcoded numbers were for x86_64)
This also makes syscall numbers available for Go code, which can be useful.
2015-12-24 19:13:08 +01:00
Dmitry Vyukov
4961230857
syz-manager: filter out programs with disabled syscalls from corpus
...
Fixes #9
2015-12-24 12:21:01 +01:00
Dmitry Vyukov
80d60f7305
tools/syz-repro: fix repeat multiplier
...
For loop already increases multiplier on exit,
so additional incrase is not necessary.
2015-12-24 12:06:15 +01:00
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