Commit Graph

2481 Commits

Author SHA1 Message Date
Dmitry Vyukov
f5311fac95 sys: add basic netlink support for real 2016-01-23 21:27:57 +01:00
Dmitry Vyukov
7e28ae6b3b sys: fix arg type 2016-01-23 13:17:06 +01:00
Dmitry Vyukov
790b11ac9b sys: add basic netlink support 2016-01-23 13:10:35 +01:00
Dmitry Vyukov
8bdf62d1b7 sys: implement array byte size arguments 2016-01-23 00:37:08 +01:00
Dmitry Vyukov
b06604d52a sys: remove resolved TODO 2016-01-23 00:06:30 +01:00
Dmitry Vyukov
0a98e8c14a executor: restore nodropprivs mode 2016-01-23 00:04:34 +01:00
Dmitry Vyukov
81438c4ddd sys: use kernel headers instead of host headers
This solves several problems:
 - host usually have outdates headers, so previously we need to define missing consts
 - host may not have some headers at all
 - generation depends on linux distribution and version
 - some of the consts cannot be defined at all (e.g. ioctls that use struct arguments)
2016-01-22 21:18:33 +01:00
Dmitry Vyukov
fe270dcf86 fuzzer: turn off kmemleak when not used
kmemleak introduces significant slowdown
2016-01-22 18:22:08 +01:00
Dmitry Vyukov
1e06d2bafc executor: new namespace-based sandbox 2016-01-22 18:09:32 +01:00
Dmitry Vyukov
3247604265 vm/adb: fix instance leak 2016-01-21 16:12:42 +01:00
Dmitry Vyukov
2fb5e9b0d4 vm/qemu: fix latent output reading bug 2016-01-20 14:01:45 +01:00
Dmitry Vyukov
8cff5843fb vm/adb: use a more reliable way to reboot devices 2016-01-20 13:58:57 +01:00
Dmitry Vyukov
aa1b7fe3a8 executor: start moving sandboxing code into executor 2016-01-20 13:49:06 +01:00
Dmitry Vyukov
a6b573b82a config: add another builtin suppression 2016-01-20 13:48:01 +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
d5c2595f05 executor: adopt for new kcov
Now kcov exposes only uintptr-sized PCs.
2016-01-19 15:08:11 +01:00
Dmitry Vyukov
842a74a661 manager: use jsonrpc for communication
It seems to be less agressive with caching.
gob caches tons of memory per connection.

Also fix a timer memory leak.
2016-01-19 12:32:21 +01:00
Dmitry Vyukov
7f927c8e33 manager: don't copy data aimlessly
Inputs on manager are immutable anyway.
2016-01-19 12:31:09 +01:00
Dmitry Vyukov
36b96db4da manager: import net/http/pprof
Also expose how much memory is spent on coverage information.
2016-01-19 12:29:59 +01:00
Dmitry Vyukov
a46b854974 fuzzer: don't store coverage for all inputs 2016-01-19 12:28:07 +01:00
Dmitry Vyukov
1d77072874 prog: don't cache static priorities
This is not computed very frequently, but wastes memory.
2016-01-19 12:26:27 +01:00
Dmitry Vyukov
9c277c7974 sys: describe more dri syscalls 2016-01-16 00:23:47 +01:00
Dmitry Vyukov
b1f7eb0c30 vm: reformat 2016-01-15 20:33:09 +01:00
Dmitry Vyukov
7a94216729 csource: format source with clang-format 2016-01-15 20:32:32 +01:00
Dmitry Vyukov
81dc7f8dc8 sys: support /dev/input/event ioctls 2016-01-15 20:16:02 +01:00
Dmitry Vyukov
1bdeb308d3 vm: add another crash message for older kernels 2016-01-15 20:15:36 +01:00
Dmitry Vyukov
a670fa2035 executor: reportat after clang-format bug fix
http://reviews.llvm.org/rL257763
2016-01-15 10:33:27 +01:00
Dmitry Vyukov
12f3129e71 vm/local: implement debug mode 2016-01-14 11:04:49 +01:00
Dmitry Vyukov
b217dcb509 sys: support /dev/input/{mouse,mice,event} 2016-01-13 20:45:35 +01:00
Dmitry Vyukov
d399ab9dc9 executor: don't create all threads when spot a root syscall 2016-01-13 20:44:05 +01:00
Dmitry Vyukov
9e2ea41475 executor: don't print all waitpid debug messages 2016-01-13 19:26:51 +01:00
Dmitry Vyukov
a92b8c76c3 sys: introduce a generic syz_open_dev helper syscall 2016-01-13 18:57:12 +01:00
Dmitry Vyukov
f675d35c97 prog: add some magic integers 2016-01-13 17:23:41 +01:00
Dmitry Vyukov
91630fe39d sys: add support for /dev/snd/control 2016-01-13 16:54:29 +01:00
Dmitry Vyukov
bca57831a5 sys: add support for /dev/snd/timer 2016-01-12 20:14:56 +01:00
Dmitry Vyukov
15128d47bd sys: support /dev/snd/seq 2016-01-11 22:26:09 +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
46fa57f3b4 executor: use mknodat instead of mknod (the latter is not implemented on android) 2016-01-11 17:30:08 +01:00
Dmitry Vyukov
31d1087c3f ipc: umount all mounts before removing temp dirs
This is needed if unshare(CLONE_NEWNS) is not implemented.
Otherwise, os.RemoveAll fails.
2016-01-11 17:28:34 +01:00
Dmitry Vyukov
4f3c86c950 manager: restore exclusion of programs with disabled syscalls 2016-01-08 22:41:36 +01:00
Dmitry Vyukov
bb47c6540d sys: add kvm support 2016-01-08 22:41:36 +01:00
Dmitry Vyukov
c9b24b38c9 Update README.md 2016-01-07 13:16:20 +01:00
Dmitry Vyukov
ad969c98f1 tools: add script that creates a Linux image suitable for syzkaller 2016-01-07 13:12:36 +01:00
Dmitry Vyukov
33950d306a executor: fix some bugs found by clang 2015-12-31 17:52:26 +01:00
Dmitry Vyukov
96e9dbd874 sys: update grammar description 2015-12-31 16:03:01 +01:00
Dmitry Vyukov
aa82db2290 sys: implement sockaddr_storage 2015-12-31 16:03:01 +01:00
Dmitry Vyukov
4eb9d403e8 prog: implement mutation of union args 2015-12-31 16:03:01 +01:00
Dmitry Vyukov
62351e3ea5 fuzzer: allow to write programs to dmesg
Mostly useful for local VM.
2015-12-31 16:03:01 +01:00