1865 Commits

Author SHA1 Message Date
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
016b19c61c fix waiting for worker processes in executor
+ disable SIGCANCEL/SIGSETXID signal handlers
2015-11-18 15:08:42 +01:00
Dmitry Vyukov
6892001bbc add tty-related ioctl's 2015-11-16 19:14:05 +01:00
Dmitry Vyukov
3716eb3830 format go files simpler 2015-11-10 20:32:03 +01:00
Dmitry Vyukov
0165a4b2e4 use fork server in executor
This avoids exec per test.
Also allows to pre-map shared memory regions.
And will allow to pre-map coverage regions, etc.

Seems to work already, but probably there are still some bugs.
2015-11-10 20:30:50 +01:00
Dmitry Vyukov
d3e457e285 use futex instead of spin wait
Spinning is bad. Also pollutes strace output.
2015-11-10 14:32:46 +01:00
Dmitry Vyukov
760fa7e724 go fmt 2015-11-10 14:32:37 +01:00
Dmitry Vyukov
54af41532d merge execlog and execprog tools
Functionality was duplicated to significant degree.
Now execprog can do all execlog could do.
2015-11-10 13:56:10 +01:00
Dmitry Vyukov
18220dd54e support parallel execution in stress utility 2015-11-10 13:38:08 +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
a44473e4a4 add collide mode to executor
In this mode we execute pairs of syscalls concurrently
to provoke data races in kernel.
2015-11-06 23:15:40 +01:00
Dmitry Vyukov
1334407ba4 reduce number of indirections in syscall description by using consts 2015-11-06 21:51:19 +01:00
Dmitry Vyukov
53d18c7596 describe keyctl syscall 2015-11-06 21:51:19 +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
b95ad23cfe Update README.md 2015-11-05 19:44:47 +01:00
Dmitry Vyukov
54d87b89ea enable dropprivs in fuzzer 2015-11-05 10:31:05 +01:00
Dmitry Vyukov
a7d2a521f3 support dropprivs in execlog/execprog 2015-11-05 10:30:39 +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
0750245eea experimental functionality to impersonate nobody user in executor 2015-10-20 17:43:02 +02:00
Dmitry Vyukov
8264f54f5e improve lkvm support (still does not quite work) 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
727e8240ff read corpus from a zip archive in stress tool 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
e9cf3f5aa1 minor tweaks to program generation heuristics 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
b0a24e2466 don't generate pthread(PTRACE_TRACEME) due to a known issue 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
9a3bf1a7c7 open /proc/cover only once in executor
First, it is just not necessary to open it multiple times.
But more importantly a program can close fds that it previosuly used:

r0 = open(...)
close(r0)
close(r0)

and this can close cover fds created in threaded mode.
2015-10-20 15:46:04 +02:00
Dmitry Vyukov
304c1de389 add threaded and timeout flags to execlog 2015-10-20 15:46:04 +02:00
Dmitry Vyukov
a8c682fe99 dump executor output directly to console when debug
Otherwise there is no way to see the output if executor hangs dead.
2015-10-20 15:46:04 +02:00
Dmitry Vyukov
505473bd9b allow to specify timeout in execprog 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
3f6daab6e4 Update README.md 2015-10-19 10:55:34 +02:00
Dmitry Vyukov
62ed8ca7b6 don't trim programs on syscall that gives new coverage
Threaded execution mode can execute following syscalls and they can affect
coverage of the call in question. Trimming should be handled by minimization.
2015-10-16 22:35:16 +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
cd51d417c6 allow to not specify enabled syscalls in prog.BuildChoiceTable 2015-10-16 22:10:51 +02:00
Dmitry Vyukov
6d84c5d2d7 add mutate tool that allows to manually investigate mutator behavior 2015-10-16 22:00:16 +02:00
Dmitry Vyukov
f8f416fb8f preliminary description of kdbus syscalls 2015-10-16 18:16:10 +02:00
Dmitry Vyukov
587db99baa lkvm support 2015-10-16 13:33:24 +02:00
Dmitry Vyukov
7f031e85ef add common ioctl commands 2015-10-15 20:07:28 +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
7d43052166 Update README.md 2015-10-14 20:11:53 +02:00
Dmitry Vyukov
c9b915608d initial support for call priorities 2015-10-14 16:55:09 +02:00
Dmitry Vyukov
38493312da allow to specify parallelism level in tools/execlog 2015-10-14 10:54:04 +02:00
Dmitry Vyukov
78514887ec clean up temp files in tools/execprog 2015-10-14 10:53:46 +02:00
Dmitry Vyukov
9f8e5038cf teach prog about in6_addr 2015-10-13 21:24:22 +02:00