Commit Graph

1550 Commits

Author SHA1 Message Date
Dmitry Vyukov
8fa0c867d4 syz-fuzzer: generates hints only for the call that gave new coverage
During smashing we know what call gave new coverage,
so we can concentrate just on it.
This helps to reduce amount of hints generated (we have too many of them).
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
5044885ca2 prog: add a TODO for hints 2017-10-23 09:59:39 +02:00
Dmitry Vyukov
54ae9c6db3 tools/syz-execprog: print total number of comps/hints 2017-10-23 09:59:39 +02:00
Dmitry Vyukov
4f9fc95501 prog: fix bugs in hints generation
Add a random hints test and fix bugs it uncovers.
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
a3789f831f syz-fuzzer: fix crash during hints processing
info can be nil on hard executor failures
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
baecf7a955 syz-fuzzer: make -v=1 logging more useful
We currently print programs with -v=1, this leads to too verbose output.
This was used during syzkaller bootstrapping and is not so useful anymore.
Don't print programs with -v=1. Instead give more insignt into what fuzzer
is doing.
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
b71450d9fb executor: prevent executor from messing with output region
When comparisons are enabled fuzzer somehow manages to discover
the output region and corrupt it. It seems to fetch the address
from some memory operations (mmap/munmap).

Don't leak the output region address.
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
3c6fe80395 syz-fuzzer: send hints/seeds stats to manager 2017-10-23 09:59:39 +02:00
Dmitry Vyukov
6755f62592 syz-fuzzer: fix manager polling
We need to always poll manager to send stats/maxsignal,
we just need not request candidates if we have plenty of work.
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
9b5612df77 syz-fuzzer: fix detection of hints
Global compsSupported is shadowed by the local var,
so we never have hints enabled.
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
afa9178d57 pkg/ipc: fix reading comp hints
if/else branches are intermixed
2017-10-23 09:59:39 +02:00
Dmitry Vyukov
ab829b1b0b pkg/report: more linux spinlock oops messages 2017-10-22 14:30:13 +02:00
LeadroyaL
4d9c071338 use absolute link 2017-10-20 10:27:24 +02:00
LeadroyaL
534e07edeb docs: fix configuration documentation 2017-10-20 10:27:24 +02:00
Dmitry Vyukov
355f57c5fb Update freebsd.md 2017-10-19 14:34:48 +02:00
Dmitry Vyukov
b8d21896b6 Delete issue_template.md 2017-10-19 14:27:44 +02:00
Dmitry Vyukov
d1fdae0c34 Create issue_template.txt 2017-10-19 14:27:36 +02:00
Dmitry Vyukov
f7e3d40e6f Update freebsd.md 2017-10-19 13:31:40 +02:00
Dmitry Vyukov
d629e2b7fe Update freebsd.md 2017-10-19 13:28:49 +02:00
Andrey Konovalov
10c53cfcdb Update found_bugs_usb.md 2017-10-19 13:13:56 +02:00
Dmitry Vyukov
3704c60135 executor: fix build breakages due to doexit
Some standard libraries contain "using ::exit;",
which breaks with the current redefinition of exit.
2017-10-19 11:06:05 +02:00
Dmitry Vyukov
f26811f080 pkg/ast: fix TestParseAll 2017-10-19 10:45:27 +02:00
Dmitry Vyukov
fe864987bd syz-manager: pass kernel object dir to report.NewReporter 2017-10-18 18:19:01 +02:00
Dmitry Vyukov
6a4810dd45 pkg/report: strip unnecessary info from "workqueue lockup" crashes 2017-10-18 16:56:05 +02:00
Dmitry Vyukov
441d64d9a5 syz-manager/mgrconfig: fix selection of executor binary
We currently select executor for vm arch, need to select target arch.
This breaks linux/amd64/386 configuration where we select amd64 instead of 386.
2017-10-18 16:49:25 +02:00
Dmitry Vyukov
296be8cc8d pkg/ipc: move fallback coverage into executor
It seems to explode linux corpus.
So make it freebsd-specific.
2017-10-18 16:49:25 +02:00
Andrey Konovalov
5776783af1 Update found_bugs_usb.md 2017-10-18 14:16:38 +02:00
Dmitry Vyukov
0c3dda40b8 Update contributing.md 2017-10-18 12:31:05 +02:00
Dmitry Vyukov
7ba02b7e21 Update pull_request_template.txt 2017-10-18 12:26:12 +02:00
Dmitry Vyukov
21c4900972 Update pull_request_template.txt 2017-10-18 12:25:15 +02:00
Dmitry Vyukov
1ba1282960 Create pull_request_template.txt 2017-10-18 12:23:12 +02:00
Dmitry Vyukov
7fdc7eba93 Create issue_template.md 2017-10-18 12:14:53 +02:00
Dmitry Vyukov
83d9b33c5b Update contributing.md 2017-10-18 12:07:21 +02:00
Dmitry Vyukov
f89294761c executor: use forkserver for freebsd
Use forkserver and shmem for freebsd.
This greatly improves speed.
Also introduce fallback coverage signal based
on unique (syscall+errno) pairs.
2017-10-18 12:01:24 +02:00
Dmitry Vyukov
6368c469a5 pkg/report: support freebsd 2017-10-18 12:01:24 +02:00
Dmitry Vyukov
85c802e4cf pkg/report: support multiple OSes
Introduce report.Reporter interface.
Add an implementation per-OS.
Make users be explicit about OS they are testing.
2017-10-18 12:01:24 +02:00
Willem de Bruijn
b69d27d17e docs: minor updates to x86_64 ubuntu setup instruction 2017-10-17 15:26:15 +02:00
Willem de Bruijn
6a3e678181 sys/linux: add MSG_ZEROCOPY 2017-10-17 15:26:15 +02:00
Dmitry Vyukov
6a06c36fe1 pkg/report: don't use access size for KASAN reports
Including access size potentially leads to failure to deduplicate
reports when size comes from user or for racy bugs (bug is detected
on different accesses depending on timings).
We already drop size from UAF and OOB, drop it for other bug types.
2017-10-17 15:09:01 +02:00
Dmitry Vyukov
a1bdb604cc syz-manager: extend periodic messages
Add coverage and number of reproducing programs to the periodic messages.
When all machines are busy reproducing crashes, it appears that
syz-manager hanged as number of executed programs does not increase.
Coverage is just a nice characteristic.
Also print machine check message, it appears once and contains useful info.
2017-10-17 15:00:01 +02:00
Dmitry Vyukov
038cff25e2 vm/qemu: update error message for newer qemu
Newer qemu prints "Could" instead of "could".
2017-10-17 14:09:37 +02:00
Dmitry Vyukov
493f7afa4b docs: add some info about freebsd 2017-10-17 13:56:29 +02:00
Dmitry Vyukov
3d5e81e280 sys/freebsd: more syscall descriptions
This is mostly copied form linux.
We probably need better support for sharing descriptions
between multiple OSes. But there are lots of differences,
so this is not trivial.
2017-10-17 13:50:05 +02:00
Dmitry Vyukov
766bfcfdd0 Makefile: format akaros descriptions 2017-10-17 11:02:27 +02:00
Dmitry Vyukov
bb146866c0 executor: improvements for akaros
1. remove workaround for pthread attrs (was fixed in akaros)
2. remove workaround for dup2 (was fixed in akaros)
3. check that we receive a program
4. implement timeout for test processes
2017-10-17 10:57:38 +02:00
Dmitry Vyukov
a8a0b01a8b tools/syz-mutate: allow to specify target 2017-10-17 10:54:19 +02:00
Dmitry Vyukov
22279cf815 Makefile: don't string executor
This fails on bots with:

strip --strip-debug ./bin/linux_arm64/syz-executor
strip: Unable to recognise the format of the input file `./bin/linux_arm64/syz-executor'
2017-10-16 20:25:19 +02:00
Dmitry Vyukov
974ad2210c syz-manager: check git revision on start
If we have no git revision, we will fail later anyway.
Better to fail earlier.
2017-10-16 20:21:47 +02:00
Dmitry Vyukov
8793f74c6c sys/fuchsia: more descriptions 2017-10-16 19:23:13 +02:00
Dmitry Vyukov
6222b00f4b sys/fuchsia: minor improvements to syscall descriptions 2017-10-16 15:53:28 +02:00