Commit Graph

2485 Commits

Author SHA1 Message Date
Dmitry Vyukov
9fe5658a1b gometalinter: check dot imports
Update #538
2018-05-03 14:41:34 +02:00
Dmitry Vyukov
39302300d9 gometalinter: check unkeyed composite literals
Update #538
2018-05-03 14:01:48 +02:00
Dmitry Vyukov
4c24e4a467 gometalinter: enable package comment checking
Update #538
2018-05-03 13:53:01 +02:00
Dmitry Vyukov
d169e0f3c4 prog: test TransitivelyEnabledCalls on all targets
Fixes #585
2018-05-03 13:40:21 +02:00
Dmitry Vyukov
8180779d1d dashboard/app: cleanup and tidy email reports
Align all info into nice table.
Shorten links a bit.
Remove some non-strictly-necessary info.
Rework some texts.

Fixes #565
2018-05-03 12:24:38 +02:00
Julia Hansbrough
9ce14f4b01 prog: Fix page fault for syz-stress users.
In resources.go, haveGettime is False when SyscallMap["clock_gettime"]
is nil.

In this code, there's a branch that's entered only if Gettime is False,
which appends SyscallMap["clock_gettime"] to resourceCtors.  That is, it
appends nil to resourceCtors, then iterates through resourceCtors and
tries to dereference the .Name of each time, in this case, nil.Name.

This was causing a page fault on Fuchsia.

I'm not certain how the "standard" flow is supposed to work, since it
seems like any code that enters the `if cantCreate == "" && !haveGettime`
should fail... but, removing that section causes test failures, so let's
just enforce that SyscallMap["clock_gettime"] is non-nil.

If there's a better way to solve this, I'm open to suggestions.
2018-05-03 07:50:03 +02:00
Dmitry Vyukov
d5b114b401 executor: fix read_cover_size signature 2018-04-30 09:23:37 +02:00
Theodore Ts'o
06db3cec94 Makefile: fix build in an i386 debian chroot
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2018-04-30 09:20:55 +02:00
Dmitry Vyukov
bb79c6ab16 sys/linux: add few more filesystems with images 2018-04-29 18:59:43 +02:00
Dmitry Vyukov
6e2ce6613b pkg/host: fix syz_mount_image detection
Only init admin can mount filesystems with images.
2018-04-29 18:45:45 +02:00
Dmitry Vyukov
67bec9bb44 sys/linux: describe block device ioctls
Describe block device ioctls.
Describe sg device ioctls.
Add few more devices.
2018-04-29 18:44:32 +02:00
Dmitry Vyukov
dba54bc2b8 sys/linux: refactor some flags to use char consts 2018-04-29 12:04:22 +02:00
Dmitry Vyukov
1e85f7b9af pkg/ast: support char constants
Frequently it's useful to do something like:

int8['a':'z']
punctuation = ',', '-', ':'
2018-04-29 12:04:22 +02:00
Dmitry Vyukov
c7f6891ca7 pkg/report: reformat code
There is some regression in Go formatting on tip.
I am constantly getting diffs after formatting.
Filed: https://github.com/golang/go/issues/25161
2018-04-29 12:04:22 +02:00
Dmitry Vyukov
d5a5d04517 sys/linux: a bunch of assorted improvements 2018-04-27 19:52:20 +02:00
Dmitry Vyukov
190d92e056 sys/linux: extend namespace desciptions
Slightly extend namespace descriptions and move
them to a separate file.
2018-04-27 18:47:58 +02:00
Dmitry Vyukov
195cc154e2
Update kernel_configs.md 2018-04-27 16:03:10 +02:00
Dmitry Vyukov
7785e4049f
Update setup_linux-host_qemu-vm_arm-kernel.md 2018-04-27 15:46:45 +02:00
Dmitry Vyukov
0008f52678 pkg/report: fix remaining lockdep report formats
We fixed only 1, but new format affects all lockdep reports.
Fix all of them.
2018-04-27 15:44:47 +02:00
Dmitry Vyukov
1e49a807a4 syz-manager: log suppressed crashes always
If there are few of them, it does not matter if they are printed or not.
However if there are lots of them, they need to be seen in log.
2018-04-27 15:43:55 +02:00
Dmitry Vyukov
3c7caf1d6e pkg/host: enable more fault injection 2018-04-27 15:43:29 +02:00
Dmitry Vyukov
733e69fd24 syz-fuzzer: fix kcov detection for cross-arch testing 2018-04-27 15:42:48 +02:00
Dmitry Vyukov
b9e02d5759 docs: add instructions for arm kernel 2018-04-27 14:33:01 +02:00
Dmitry Vyukov
bcd6198db5 executor: support cover on 32-bit kernels
Detect kernel bitness and properly extract coverage on 32-bit kernels.
2018-04-27 14:33:01 +02:00
Dmitry Vyukov
6bd8902381 syz-fuzzer: clean up after probing coverage
We left mmap memory and comparison tracing enabled.
2018-04-27 14:33:01 +02:00
Dmitry Vyukov
ebfe5a54b7 syz-fuzzer: use proper pointer size when checking coverage 2018-04-27 14:33:01 +02:00
Dmitry Vyukov
476b8ca987 syz-manager: properly calculate previous instruction PC
We used to subtract 5 which is length of call instruction on amd64.
Do proper per-arch calculation.
2018-04-27 14:33:01 +02:00
Dmitry Vyukov
d0b7645387 pkg/report: few report parsing fixes for linux 2018-04-26 14:46:16 +02:00
Hangbin Liu
73417389ce sys/linux/socket_netlink_route: add routing rules
Also fix RTA_MULTIPATH data type. We only need struct rtnexthop,
no need to use array type.

v1 -> v2:
Use uid and sock_port instead of int32/16. Use flags for FRA_PROTOCOL
and FRA_IP_PROTO.

Add type fib_rule_hdr because even though the structure is same with rtmsg.
The table, action and flags values are not same.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
2018-04-25 09:33:09 +02:00
Dmitry Vyukov
37e76fe20b pkg/scource: rename compiled binary to syz-executor
We call the binary syz-executor because it sometimes shows in bug titles,
and we don't want 2 different bugs for when a crash is triggered during
fuzzing and during repro.
2018-04-24 19:17:07 +02:00
Dmitry Vyukov
fd5157bebf pkg/report: sanitize titles better
Strip non-printable characters from titles.
Trim whitespaces on both ends.
Replace tabs with spaces.
Remove duplicate spaces.
Reduce max title length.
2018-04-24 19:17:07 +02:00
Dmitry Vyukov
98e363b852 pkg/git: don't create shallow repos
Shallow repos created by CheckoutBranch conflict with
what CheckoutCommit tries to do.
Fetch of a shallow repo does not unshallow it.
And then checkout of a non-head commit fails.
2018-04-24 19:17:07 +02:00
Dmitry Vyukov
4707a17923
Update found_bugs.md 2018-04-24 15:57:13 +02:00
Dmitry Vyukov
1fda5ee0af
docs: add new ways of testing patches on syzbot
1. Mention that exact commit hash can be provided.
2. Mention that patch is optional now.
2018-04-24 15:34:37 +02:00
Dmitry Vyukov
2bf86f4022 syz-ci: remove restriction on empty patch 2018-04-24 14:55:39 +02:00
Dmitry Vyukov
0bad1c56e8 dashboard/app: make it possible to restrict test repos
Normally instances can test patches on any tree.
However, some (e.g. non-upstreamed KMSAN) can test only on a fixed tree.
RestrictedTestingRepo contains the repo for such instances
and RestrictedTestingReason contains a human readable reason for the restriction.

Fixes #567
2018-04-24 14:30:32 +02:00
Dmitry Vyukov
2e579571e0 dashboard/app: refactor manager info in config
In preparation for future changes.
2018-04-24 13:58:56 +02:00
Dmitry Vyukov
9366d03f00 dashboard/app: allow testing fixes on exact commit and without patch
This implements 2 features:
1. It's now possible to specify exact commit when testing as:

2. It's possible to test without patch attached
assuming the patch is already committed to the tested tree.

Fixes #558
2018-04-24 13:23:01 +02:00
Dmitry Vyukov
e2f4bf8f38 pkg/gce: improve API rate limit logic
Sometimes we see rate limiting errors.
This is especially bad for e.g. patch testing requests.
Increase default API delay and add backoff logic.
2018-04-24 13:23:01 +02:00
Dmitry Vyukov
33424b08c3 pkg/report: more corrupted report detection 2018-04-24 13:23:01 +02:00
Dmitry Vyukov
02bbd80e7c prog: fix gometalinter warnings 2018-04-24 13:23:01 +02:00
Dmitry Vyukov
e7e85d3609 pkg/kernel: fix gometalinter warning 2018-04-23 16:50:25 +02:00
Dmitry Vyukov
0d8e591c31 syz-ci: reduce git poll period 2018-04-23 16:28:24 +02:00
Dmitry Vyukov
8b5dcf17b0 syz-ci: clean kernel dir before patch test build
This leads to false errors when we are switching between gcc and clang:

kernel build failed: failed to run /usr/bin/make [make bzImage -j 32 CC=/syzkaller/clang-kmsan/bin/clang]: exit status 2
arch/x86/Makefile:184: *** Compiler lacks asm-goto support..  Stop.

Fixes #568
2018-04-23 16:26:26 +02:00
Dmitry Vyukov
ff12bea91c pkg/ipc: fix data race on config.Timeout 2018-04-23 16:26:26 +02:00
Dmitry Vyukov
c7b0bb14c0
Update found_bugs.md 2018-04-23 15:38:28 +02:00
Dmitry Vyukov
5be8929822
Update README.md 2018-04-23 15:36:58 +02:00
Dmitry Vyukov
20941ab3cb
Update found_bugs.md 2018-04-23 11:19:36 +02:00
Hyeongchan Kim
d23fcf6cfb syz-upgrade: fix typo in usage message 2018-04-21 10:41:19 +02:00
Dmitry Vyukov
ca03d6881a vm/qemu: don't be too clever with cpu configuration
Some machine configurations have strict limits on number of CPUs
and don't support NUMA (e.g. arm vexpress-a15).
maxcpu and numa options make qemu fail.
Don't be too clever. If necessary maxcpu and numa options
can be added in qemu_args.
2018-04-20 20:14:10 +02:00