Commit Graph

289 Commits

Author SHA1 Message Date
Dmitry Vyukov
8cff5843fb vm/adb: use a more reliable way to reboot devices 2016-01-20 13:58:57 +01:00
Dmitry Vyukov
891b46a9a5 vm: faster output oops grepping
Use manual parsing instead of a regexp.
Regexp takes ~220ms for typical output size. New code takes ~2ms.
Brings manager CPU consumption from ~250% down to ~25%.
2016-01-19 17:22:36 +01:00
Dmitry Vyukov
dfd341e349 vm/qemu: use snapshot mode
This avoids image copy per instance.
Also page cache won't hold multiple copies of the image.
2016-01-19 15:48:32 +01:00
Dmitry Vyukov
b1f7eb0c30 vm: reformat 2016-01-15 20:33:09 +01:00
Dmitry Vyukov
1bdeb308d3 vm: add another crash message for older kernels 2016-01-15 20:15:36 +01:00
Dmitry Vyukov
12f3129e71 vm/local: implement debug mode 2016-01-14 11:04:49 +01:00
Dmitry Vyukov
91630fe39d sys: add support for /dev/snd/control 2016-01-13 16:54:29 +01:00
Dmitry Vyukov
4d906f05d4 vm/adb: add adb-based VM
vm/adb can be used to fuzz on real android devices.
2016-01-11 17:40:26 +01:00
Dmitry Vyukov
de48f7b019 vm: refactor VM interface in preparation for adb support
adb has more complex port forwarding setup, also / is mounted read-only.
Make VM interface more flexible to support such cases.
2016-01-11 17:33:44 +01:00
Dmitry Vyukov
02aa995eb1 vm/local: minor improvements 2015-12-30 19:53:39 +01:00
Dmitry Vyukov
43815ce761 vm/local: revive local VM 2015-12-30 18:25:14 +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
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
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
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
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
41126671ec manager: allow to run fuzzer under root 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
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
Dmitry Vyukov
b1e98de8a6 fuzzer: parallel execution mode
Config now have procs parameter that controls number
of parallel executor's running in each VM.
2015-11-26 15:56:18 +01:00
Dmitry Vyukov
b0131d4eef manager: add support for suppressions
There are always some known bugs...
2015-11-20 19:58:27 +01:00
Dmitry Vyukov
be856bc9e4 allow local vm to not call setuid (not necessary if started not under root) 2015-11-18 16:30:29 +01:00
Dmitry Vyukov
d2c7f41bb0 fix ssh when you have too many keys
IdentitiesOnly=yes disables sending of irrelevant keys
2015-11-09 11:28:26 +01:00
Dmitry Vyukov
7ae6489b27 increase saved context size for crash logs
A bug can be caused by earlier programs,
so it is useful to be able to see them.
2015-11-06 21:51:19 +01:00
Dmitry Vyukov
bb15aa8bfd fix crash output 2015-11-06 21:51:19 +01:00
Dmitry Vyukov
f563cc395b minor improvements for kvm 2015-11-05 10:30:08 +01:00
Dmitry Vyukov
786414e8e9 don't emit unnecessary info into crash log
This was necessary because there was a bug in log offset calculation.
Not the bug is fixed and the additional output makes it harder to grep logs.
2015-11-04 20:23:48 +01:00
Dmitry Vyukov
9ef3f5494e fix crash report extraction from logs 2015-10-20 17:44:56 +02:00
Dmitry Vyukov
9c10c5a1fb fix crash report extraction from logs 2015-10-20 17:43:56 +02:00
Dmitry Vyukov
8264f54f5e improve lkvm support (still does not quite work) 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
74f5340ea6 allow to run local vm without coverage 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
30c9c31819 refactor enabled syscall handling 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
95fb739d94 aggregate vm params into a single struct (for ease of extension) 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
fb190a7fb9 remove ability to execute tests in parallel in fuzzer
it consumes more memory and makes it difficult to find crashing input
2015-10-16 22:21:02 +02:00
Dmitry Vyukov
587db99baa lkvm support 2015-10-16 13:33:24 +02:00
Dmitry Vyukov
8d0aa4f7c0 improvements for kdbus 2015-10-15 17:59:01 +02:00
Dmitry Vyukov
2971d4d4e0 allow to omit -kernel flag in vm/qemu
For the case when image already contains the right kernel.
2015-10-15 17:59:01 +02:00
Dmitry Vyukov
7a72606565 allow to specify additional kernel command line arguments in vm/qemu 2015-10-15 17:59:01 +02:00
Dmitry Vyukov
874c5754bb initial commit 2015-10-12 10:16:57 +02:00