syzkaller is an unsupervised coverage-guided kernel fuzzer
Go to file
Dmitry Vyukov 8285069f89 executor: implement support for leak checking
Leak checking support was half done and did not really work.
This is heavy-lifting to make it work.

1. Move leak/fault setup into executor.
pkg/host was a wrong place for them because we need then in C repros too.
The pkg/host periodic callback functionality did not work too,
we need it in executor so that we can reuse it in C repros too.
Remove setup/callback functions in pkg/host entirely.

2. Do leak setup/checking in C repros.
The way leak checking is invoked is slightly different from fuzzer,
but much better then no support at all.
At least the checking code is shared.

3. Add Leak option to pkg/csource and -leak flag to syz-prog2c.

4. Don't enalbe leak checking in fuzzer while we are triaging initial corpus.
It's toooo slow.

5. Fix pkg/repro to do something more sane for leak bugs.

Few other minor fixes here and there.
2019-05-20 19:40:20 +02:00
dashboard dashboard/config: update kmemleak config 2019-05-20 19:40:20 +02:00
docs docs: clarify syzbot handling of rebased trees 2019-05-20 18:14:07 +02:00
executor executor: implement support for leak checking 2019-05-20 19:40:20 +02:00
Godeps vendor/github.com/google/go-cmp: update to HEAD 2019-03-17 18:06:44 +01:00
pkg executor: implement support for leak checking 2019-05-20 19:40:20 +02:00
prog pkg/compiler: add offsetof type 2019-05-16 18:05:05 +02:00
sys sys/linux: improve binder descriptions 2019-05-17 11:56:54 +02:00
syz-ci syz-ci: fix variable shadowing 2019-05-12 11:42:33 +02:00
syz-fuzzer executor: implement support for leak checking 2019-05-20 19:40:20 +02:00
syz-hub syz-manager: factor out rpc serving part 2018-12-26 10:58:23 +01:00
syz-manager syz-manager: don't repro non-leaks on leak instance 2019-05-20 19:40:20 +02:00
tools executor: implement support for leak checking 2019-05-20 19:40:20 +02:00
vendor vendor/github.com/google/go-cmp: update to HEAD 2019-03-17 18:06:44 +01:00
vm pkg/repro: fix no output timeout 2019-05-20 19:40:20 +02:00
.clang-format buildbot: add .travis.yml 2017-07-28 13:25:48 +02:00
.gitignore sys: check in generated files 2017-06-13 15:55:31 +02:00
.golangci.yml .golangci.yml: add codeanalysis build tag 2019-05-15 11:39:31 +02:00
.gometalinter.json tools/syz-trace2syz: add tool to convert strace output to programs 2018-12-06 16:25:37 +01:00
.travis.yml Makefile: enable 386 executor build in presubmit 2019-05-07 18:01:24 +02:00
AUTHORS executor: change syscall argument type to intptr_t 2019-05-07 08:48:35 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-02-04 12:05:04 +01:00
CONTRIBUTORS executor: change syscall argument type to intptr_t 2019-05-07 08:48:35 +02:00
fuzz.yaml prog/test: rename prog/fuzz to prog/test 2019-04-01 12:20:19 +02:00
LICENSE initial commit 2015-10-12 10:16:57 +02:00
Makefile Makefile: switch to golangci-lint 2019-05-15 11:39:31 +02:00
README.md docs: add new line in README.md 2019-03-01 11:33:01 +01:00

syzkaller - kernel fuzzer

Build Status Go Report Card Coverage Status GoDoc License

syzkaller is an unsupervised coverage-guided kernel fuzzer.
Supported OSes: Akaros, FreeBSD, Fuchsia, gVisor, Linux, NetBSD, OpenBSD, Windows.

Mailing list: syzkaller@googlegroups.com (join on web or by email).

Found bugs: Akaros, Darwin/XNU, FreeBSD, Linux, NetBSD, OpenBSD, Windows.

Documentation

Initially, syzkaller was developed with Linux kernel fuzzing in mind, but now it's being extended to support other OS kernels as well. Most of the documentation at this moment is related to the Linux kernel. For other OS kernels check: Akaros, Darwin/XNU, FreeBSD, Fuchsia, NetBSD, OpenBSD, Windows, gVisor.

External Articles

Disclaimer

This is not an official Google product.