Commit Graph

1550 Commits

Author SHA1 Message Date
Andrey Konovalov
08a7078aab Update linux_kernel_reporting_bugs.md 2017-08-03 19:11:58 +02:00
Andrey Konovalov
35e1c3cdb5 Update linux_kernel_reporting_bugs.md 2017-08-03 14:36:28 +02:00
Dmitry Vyukov
5766dbe796 syz-dash, syz-gce: remove
This is now superseded by dashboard/app and syz-ci.
2017-08-02 19:50:48 +02:00
Alexander Potapenko
695046b738 Merge pull request #320 from ramosian-glider/submit-mmap
prog: don't mutate mmap() calls too often
2017-08-02 08:51:05 -07:00
Dmitry Vyukov
44347e8742 dashboard/app: purge at most 10 crashes at once
We see some episodic
"failed to delete old crash texts: Call error 11: Deadline exceeded (timeout)"
errors in logs.
Deleting at most 10 bugs should be enough since we do this check
after adding each new crash.
2017-08-02 16:37:42 +02:00
Alexander Potapenko
77825d061d prog: don't mutate mmap() calls too often
Due to https://github.com/google/syzkaller/issues/316 there're too many
mmap() calls in the programs, and syzkaller is spending quite a bit of
time mutating them. Most of the time changing mmap() calls won't give
us new coverage, so let's not do it too often.
2017-08-02 16:20:28 +02:00
Dmitry Vyukov
61d1beb284 dashboard/app: new dashboard app
The new app is based on our experience with syz-dash
and is meant to supersede it. This app aims at full
automation of bug lifecycle: reporting, tracking updates,
closing fixed bugs.
The main differences are:
 - this app has support for reporting bugs
   either by email or using an arbitrary external reporting system
 - this app tracks status of bugs
 - this app captures more info about kernel builds
2017-08-02 15:11:03 +02:00
Andrey Konovalov
9c30744297 Merge pull request #302 from xairy/fix-kvm
sys: fix KVM_RUN ioctl
2017-08-01 21:21:33 +02:00
Andrey Konovalov
29ceeb1daf sys: fix KVM_RUN ioctl
KVM_RUN ioctl must have arg set to 0, otherwise it returns EINVAL.

This can lead to syzkaller not able to generate a C repro.
Since arg value is undefined, it might have different values when
executing a program with syz-exeprog vs executing a compiled C repro.
2017-08-01 19:19:05 +02:00
Andrey Konovalov
1517bd9548 prog: generate missing syscall args when decoding
After a change in syscall description the number of syscall arguments
might change and some of the programs in corpus get invalidated.

This change makes syzkaller to generate missing arguments when decoding a
program as an attempt to fix and keep more programs from corpus.
2017-08-01 19:19:05 +02:00
Andrey Konovalov
890882a0cf Merge pull request #317 from xairy/up-fix-result-enc
prog: fix encoding for exec of result args
2017-08-01 18:55:46 +02:00
Andrey Konovalov
1172db0ccf prog: fix encoding for exec of result args
ResultArg might have const value.

Also add a test.
2017-08-01 18:38:20 +02:00
Dmitry Vyukov
954d506c30 syz-ci: support additional syscall descriptions
Add new "syzkaller_descriptions" config param that allows
to specify a dir with additional syscall descriptions
that will be copied on top of syzkaller checkout.
2017-08-01 18:25:18 +02:00
Dmitry Vyukov
75f1e83f8b vm/gce: another attempt to fix trimmed console output
We still see trimmed reports even with the "serialport" grep.
Add a 5 second sleep in an attempt to fix it.
2017-08-01 18:25:18 +02:00
Andrey Konovalov
0b4392111b Merge pull request #314 from xairy/up-fix-splice
prog: properly remove calls when splicing progs
2017-08-01 18:15:26 +02:00
Andrey Konovalov
493773c70d prog: properly remove calls when splicing progs
Use removeCall() to update use references.

Also add a test and speed up other ones.
2017-08-01 15:57:03 +02:00
Dmitry Vyukov
032fb6f70a syz-ci: send commits to dashboard
Dashboard needs to know when bug fixing commits reach
builders in order to fully close bugs.
Send commits that dashboard is interested in to dashboard.
2017-07-28 20:14:24 +02:00
Andrey Konovalov
c579f3e612 readme: add travis-ci status 2017-07-28 14:20:59 +02:00
Andrey Konovalov
60fa4c2397 Merge pull request #305 from xairy/up-travis
Initial travis-ci integration
2017-07-28 13:37:28 +02:00
Andrey Konovalov
8d3403cdcc buildbot: add .travis.yml
Also change .clang-format to support older versions of the tool.
2017-07-28 13:25:48 +02:00
Andrey Konovalov
3eefb3bce6 makefile: cleanup
- fix and reorder .PHONY targets
- `make all` now builds everything, to build only essentials run `make main`
- `make all-tools` rename to `make tools`
2017-07-28 12:56:20 +02:00
Dmitry Vyukov
75342d238b dashboard/dashapi: add support for bug fixing commits 2017-07-27 17:02:47 +02:00
Andrey Konovalov
bbd1f3487b pkg/repro: fix null-ptr-deref when res is nil
res can become nil if one of the repro routines fails with an error.
2017-07-27 14:48:21 +02:00
Andrey Konovalov
240fb175d9 Merge pull request #301 from xairy/up-fix-repro
pkg/repro: fix simplifying threaded flag
2017-07-26 15:12:45 +02:00
Andrey Konovalov
3f5c8df22d pkg/repro: fix simplifying threaded flag 2017-07-26 15:07:07 +02:00
Dmitry Vyukov
da1dd22e48 vm/gce: fix truncated console output
Sometimes we get truncated console output during repro.
The problem is that we start the console reading ssh command,
but do not wait for it to actually connect and start piping console.
Wait while the command actually starts piping console before
starting the target command.
2017-07-25 20:32:31 +02:00
Dmitry Vyukov
841aeb0303 dashboard/dashapi: always zero reply
json decoding behavior is somewhat surprising
(see // https://github.com/golang/go/issues/21092).
This behavior is especially easy to hit in tests
that reuse reply objects.
To avoid any surprises, we zero the reply.
2017-07-25 20:25:53 +02:00
Dmitry Vyukov
4f5ad2aa53 dashboard/dashapi: add link to BugUpdate and BugUpdateReply type 2017-07-25 20:25:05 +02:00
Dmitry Vyukov
df92da0d0e dashboard/dashapi: don't send manager name in crashes
We already have manager name in Build and Crash references Build.
2017-07-25 20:23:37 +02:00
Dmitry Vyukov
68c70116f3 pkg/symbolizer: fix race on inputr in test
Pointed out by race detector.
2017-07-25 10:52:35 +02:00
Andrey Konovalov
c70b8a2cff pkg/report: fix symbolization of old KASAN stack trace format
Which has a tab instead of a space at the beginning of each frame
in alloc and free stack traces.
2017-07-24 20:50:42 +02:00
Andrey Konovalov
7b42b1cf9e Merge pull request #299 from xairy/up-better-docs
docs: small fixes
2017-07-24 19:46:09 +02:00
Andrey Konovalov
1bf4de5647 docs: small fixes 2017-07-24 18:23:04 +02:00
Andrey Konovalov
6bbb0ce7e4 Merge pull request #297 from xairy/up-fix-enconding
prog: return error instead of panic when parsing
2017-07-24 16:43:50 +02:00
Andrey Konovalov
2b21a44565 prog: return error instead of panic when parsing 2017-07-24 16:37:24 +02:00
Andrey Konovalov
1e06f3e00f Merge pull request #274 from xairy/up-better-repro
Improve C repros
2017-07-24 14:34:34 +02:00
Andrey Konovalov
0d9ae38d5d pkg/repro: disable Debug flag by default 2017-07-24 14:31:25 +02:00
Andrey Konovalov
e83310d8a2 pkg/csource: make all usleeps random
We can't know the exact values of those sleeps in advance, they can be
different for different bugs. Making them random increases the chance that
the C repro executes with the right timings at some point.
2017-07-24 14:22:54 +02:00
Andrey Konovalov
65a2d5fb58 pkg/repro: try extracting C repro before simplifying options
Sometimes C reproducers don't work after the generic prog options were
simplified. This change makes syzkaller to try extracting a C repro before
simplifying prog options and after each simplification step. This gives
us more chance to generate a C reproducer.
2017-07-24 14:22:54 +02:00
Dmitry Vyukov
87f9bdb868 dashboard/dashapi: add customizable Qeury function
Query is useful for tests and other contexts
where non-standard request creation/sending is necessary.
2017-07-21 12:43:09 +02:00
Dmitry Vyukov
0f42bbec24 syz-ci: extend dashboard interface
1. Add manager name to builds.
2. Add centralized logging.
3. Add types for bug reports and bug updates.
2017-07-21 10:06:46 +02:00
Dmitry Vyukov
1a3751c444 syz-ci: save previous manager log
If manager exits during start, it's hard to understand what happens.
Save the previous manager log as manager.log.old until we have a better solution.
Also log errors on 0 log level.
2017-07-21 10:06:46 +02:00
Dmitry Vyukov
0bdcc49799 syz-manager: fix repro saving
If manager is connected to dashboard it now does not save crashes.
Which means that when we save a repro the crash dir may not exist yet.
Create the dir when saving repros.
2017-07-21 10:06:46 +02:00
Dmitry Vyukov
240b07788c pkg/hash: allow to hash multiple byte slices
Hash/String now allow to hash mutiple byte slices
without copying them into a single slice first.
2017-07-21 10:06:46 +02:00
Andrey Konovalov
c5d0c9e318 Merge pull request #285 from xairy/up-fix-recursion
prog: allow recursion for optional pointers
2017-07-19 18:38:22 +02:00
Andrey Konovalov
0c7a205ae5 Merge pull request #286 from xairy/up-better-headers
pkg/report: replace lines numbers with LINE in report headers
2017-07-19 18:27:34 +02:00
Andrey Konovalov
1e9794774b Merge pull request #287 from xairy/up-fix-repro-log
Small fixes in manager dashboard report
2017-07-19 18:27:09 +02:00
Andrey Konovalov
d1e3265562 syz-manager: don't print empty tag on report page 2017-07-19 17:35:40 +02:00
Andrey Konovalov
f9f0e027d8 syz-manager: fix repro log filename 2017-07-19 17:32:48 +02:00
Andrey Konovalov
56db83c58a pkg/report: replace lines numbers with LINE in report headers 2017-07-19 17:20:19 +02:00