Dmitry Vyukov
28b3d1e1ab
sys: add sctp support
2015-12-30 13:04:00 +01:00
Dmitry Vyukov
9c148d824a
manager: fix printing of enabled syscalls
2015-12-29 15:18:50 +01:00
Dmitry Vyukov
e6529b30ec
sys: add union type
2015-12-29 15:00:57 +01:00
Dmitry Vyukov
d40104b8a3
fileutil: fix race in ProcessTempDir
...
One goroutine decides that it needs to clean up an instance,
but before it tries to delete pid file it is preempted.
Then another goroutine cleans up this instances and creates
a new instances in the same dir.
Then first goroutine removes already new pid file and removes
the used dir.
Fix this by using flock on a lock file.
Add a test.
2015-12-29 13:29:00 +01:00
Dmitry Vyukov
b17c5726f6
sys: support for AF_UNIX sockets
2015-12-28 19:11:03 +01:00
Dmitry Vyukov
bd768c8f40
sys: move more subsystems into separate files
2015-12-28 16:11:15 +01:00
Dmitry Vyukov
0451ffa50a
qemu/kvm: improve output buffering
...
There seems to be some missed pieces in output.
2015-12-28 15:53:51 +01:00
Dmitry Vyukov
eef80b3d76
sys: split syscall description into several files
2015-12-28 15:53:32 +01:00
Dmitry Vyukov
3dc36baa69
config: update suppression for new binary name
2015-12-28 15:42:06 +01:00
Dmitry Vyukov
c7f10835eb
manager: give kernel more time to print crash message
2015-12-28 14:35:00 +01:00
Dmitry Vyukov
27d5b3f0ec
fuzzer: don't print keep-alive
...
It is not necessary and prevents hang detection.
Programs provide output keep-alive for manager.
2015-12-28 14:11:43 +01:00
Dmitry Vyukov
b4a59f4ee6
ipc: increase timeout in tests
...
IPC timeout must be larger than executor timeout.
Otherwise IPC kills parent executor but does not
kill child executor.
2015-12-28 13:04:05 +01:00
Dmitry Vyukov
4eda9b07e5
prog: don't serialize paddings
...
Paddings in serialized programs are unnecessary and confusing.
Instead restore them implicitly.
Also use [,,,,] for arrays.
2015-12-28 12:58:10 +01:00
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