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
1e06d2bafc
executor: new namespace-based sandbox
2016-01-22 18:09:32 +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
d5c2595f05
executor: adopt for new kcov
...
Now kcov exposes only uintptr-sized PCs.
2016-01-19 15:08:11 +01:00
Dmitry Vyukov
9c277c7974
sys: describe more dri syscalls
2016-01-16 00:23:47 +01:00
Dmitry Vyukov
81dc7f8dc8
sys: support /dev/input/event ioctls
2016-01-15 20:16:02 +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
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
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
46fa57f3b4
executor: use mknodat instead of mknod (the latter is not implemented on android)
2016-01-11 17:30:08 +01:00
Dmitry Vyukov
bb47c6540d
sys: add kvm support
2016-01-08 22:41:36 +01:00
Dmitry Vyukov
33950d306a
executor: fix some bugs found by clang
2015-12-31 17:52:26 +01:00
Dmitry Vyukov
28b3d1e1ab
sys: add sctp support
2015-12-30 13:04:00 +01:00
Dmitry Vyukov
e6529b30ec
sys: add union type
2015-12-29 15:00:57 +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
eef80b3d76
sys: split syscall description into several files
2015-12-28 15:53:32 +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
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
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
b4e2d91732
sys: expose new syscall numbers programmatically
...
This will be required for reproduction tool.
2015-12-23 19:05:15 +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
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
06e6726537
sys: fix typos
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
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
9980a72713
sys: automatically add padding to structs
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
d823a9221a
executor: switch to ioctl's instead of writes
2015-12-03 20:30:20 +01:00
Dmitry Vyukov
b7800fb0a2
sys: describe some additional syscalls
2015-12-03 20:03:50 +01:00
Dmitry Vyukov
f881e7de45
executor: execute mount under root
2015-11-30 17:18:12 +01:00
Dmitry Vyukov
a63ac433ab
sys: add userfaultfd syscall
2015-11-30 16:31:45 +01:00
Dmitry Vyukov
81de33fab1
add perf ioctl's
2015-11-29 13:19:10 +01:00
Dmitry Vyukov
b94cd3038a
add support for perf events
2015-11-29 12:19:58 +01:00
Dmitry Vyukov
9d1895c1bd
add support for bpf syscall
2015-11-29 11:05:08 +01:00
Dmitry Vyukov
d46a9039a5
executor: fix build
2015-11-29 08:38:59 +01:00
Dmitry Vyukov
bb158eaeab
executor: switch to new coverage
2015-11-28 19:00:33 +01:00
Dmitry Vyukov
fb92c67d9d
executor: prevent programs to mess with fuzzer fds
2015-11-20 15:39:50 +01:00
Dmitry Vyukov
4784f4f6f5
add fuse support
2015-11-19 17:16:36 +01:00