4446 Commits

Author SHA1 Message Date
Dmitry Vyukov
30cb7f98cd pkg/bisect: detect wrong bisections
Detect bisection to merge commits and to commits that don't affect
kernel binary (comments, other arches, whitespaces, etc).
Such bisections are not reported in emails (but shown on web).

Update #1271
2019-11-07 11:07:03 +01:00
Dmitry Vyukov
f158761183 pkg/csource: don't run tests if compiler is broken
Test presence of a working compiler before running any tests for a target.
This helps to make tests pass even if some cross-compilers are not installed properly.
2019-11-07 11:07:00 +01:00
Dmitry Vyukov
b17cbe9d11 sys/targets: don't run flag tests on non-build OS
We should not try to do any builds for such targets anyway.
And the compiler does not have to exist/work.
2019-11-07 11:06:56 +01:00
Dmitry Vyukov
0281aea335 sys/linux: fix up some int64 syscall args
See the discussion on #1493.
These args are actually intptr's.
2019-11-07 11:06:48 +01:00
Dmitry Vyukov
d797d2018f pkg/report: fix up panic handling
Obviously there is an exception to every exception in kernel output parsing...
2019-11-06 18:06:12 +01:00
Dmitry Vyukov
da505f84d3 pkg/report: detect syzkaller panics in lost connection bugs
Some syzkaller panics happen due to memory corruptions,
but it still would be useful at least to get some visibility into these crashes.
On some OSes we actualy already detect them as they have "panic:" oops pattern,
but not e.g. on linux.

Fixes #318
2019-11-06 11:41:05 +01:00
Dmitry Vyukov
424cf6e8a1 pkg/build: add build signatures
Add optional build signature for images, currently only implemented for linux.
This can be used in bisection process to detect changes that does not affect kernel.

Update #1271
2019-11-06 11:41:05 +01:00
Dmitry Vyukov
c487cd4633 pkg/build: refactor Image function arguments
Image takes too many arguments, so we need to do lots of forwarding,
adding new argumnets is painful and most OSes are not interested
in lots of arguments.
Combine all arguments into a params struct.
2019-11-06 11:41:05 +01:00
Andrey Konovalov
bc2c6e45b9 sys/linux: update usb runtests
Add a test that issues multiple syz_usb_ep_write calls.
Update hiddev test to use a wider used hid driver.
2019-11-05 16:45:35 +01:00
Andrey Konovalov
af5c522d02
Update external_fuzzing_usb.md 2019-11-05 15:13:52 +01:00
Andrey Konovalov
80aca15c2a executor: update the list of raw usb events
The number of reported event types changed.
2019-11-05 15:11:22 +01:00
Zubin Mithra
0f3ec414b9 dashboard/app: add support for disabling fix bisection
* Allow fix bisection to be disabled on kernel repos to which force-pushes
occur.
* Pending fix bisection jobs for KernelRepo with FixBisectionDisabled will have
to be deleted manually.
* Add TestFixBisectionsDisabled.

Closes #1365
2019-11-05 09:17:27 +01:00
Zubin Mithra
a77e6539d9 syz-ci: send build info for failed bisections
* When fix bisections fails due to a crash on HEAD, the dashboard needs to
keep track of which commit the crash occured at. In order to do this,
send correct commit information to the dashboard.
* Modify mail_bisect_result.txt to be clearer on what
BisectResult.KernelCommit represents. Modify test in bisect_test.go to
accommodate the changes in templates.
2019-11-05 09:15:56 +01:00
Zubin Mithra
0a2d7d8293 pkg/bisect: modify Run() to return information about commit
* Modify Run() to return the commit object when a failure occurs on the
oldest tested release(for BisectCause) and latest tested
release(for BisectFix).
* Modify tests to check the returned commit object.
2019-11-05 09:15:56 +01:00
Andrey Konovalov
76630fc947 executor, pkg/host, dashboard/config: rename usb-fuzzer to usb raw-gadget
The interface is being upstreamed and the name has changed.
2019-11-04 15:43:43 +01:00
Zubin Mithra
1d0df175f3 pkg/bisect: add more tests for various possible bisection results
Add tests for the following cases(1 each for cause and fix):
- bisection returns the correct commit
- bisection failed due to crash not occuring on the original commit
- bisection failed as crash occurs on oldest/latest commit
- bisection is inconclusive
2019-11-04 14:40:37 +01:00
Dmitry Vyukov
18e12644fc sys/linux/text: fix test program syntax 2019-11-04 12:46:09 +01:00
Dmitry Vyukov
e2d61622eb sys/linux: improve CAN descriptions 2019-11-04 12:39:39 +01:00
Jiri Pirko
b35fad31e9 pkg/csource: remove duplicate check
Remove a check that was mistakenly added with devlink_pci feature and is
duplicate of the existing check.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
2019-11-03 16:42:57 +01:00
Dmitry Vyukov
99d946ccff executor: fix setup of vxcan
Adding vxcan1 also adds vxcan0. Setup and use both.
2019-11-03 15:00:15 +01:00
Dmitry Vyukov
2079602763 pkg/csource: fix lint warnings
CI failed:
https://travis-ci.org/google/syzkaller/jobs/606730911?utm_medium=notification&utm_source=github_status
2019-11-03 14:44:53 +01:00
Jiri Pirko
d40d75d2d7 executor: move fixed pci devlink handle into network namespace
In case there is a fixed pci devlink handle "pci/pci/0000:00:10.0"
on the system (initial network namespace), it is moved to a working
network namespace.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
2019-11-03 14:20:59 +01:00
Jiri Pirko
97f4b019d8 sys/linux: extend devlink for fixed pci handle
Extend devlink to also work with fixed pci handle "pci/0000:00:10.0".

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
2019-11-03 14:20:59 +01:00
Jiri Pirko
fceca3f4b7 sys/linux: add forgotten SECCOMP_FILTER_FLAG_NEW_LISTENER bits
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
2019-11-03 14:20:59 +01:00
Dmitry Vyukov
c9610487d8
docs: mention more fuzzing research work 2019-11-03 08:53:32 +01:00
Dmitry Vyukov
d603afc9e4 sys/linux: add missing arm/386 CAN consts 2019-11-02 21:44:59 +01:00
Dmitry Vyukov
841212d4cc sys/linux: extend CAN descriptions 2019-11-02 21:31:45 +01:00
Paul Chaignon
1297f23947 sys/linux: use template base to simplify pppox description
Co-authored-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-11-02 21:30:47 +01:00
Paul Chaignon
997ccc675b pkg/compiler: define fileoff template
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-11-01 19:14:49 +01:00
Paul Chaignon
f922d4435a pkg/compiler: special BASE argument in templates
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-11-01 19:14:49 +01:00
Matthew Dempsky
a41ca8fa82 sys/targets: fix Fuchsia build
Zircon directories have changed. Again.
2019-10-30 13:28:29 -07:00
Matthew Dempsky
d70278b724 docs/fuchsia: update README.md
The build process has changed somewhat since switching to host fuzzing
mode. Also, rearrange the fx build steps earlier, since they're a
prerequisite for building syzkaller.
2019-10-30 13:28:29 -07:00
Andrey Konovalov
5ea87a6638 executor: update kcov remote coverage interface
The kcov extension is being upstreamed and the interfaces has been changed.
2019-10-28 18:35:29 +01:00
Dmitry Vyukov
439d7b14af sys/linux: add SECCOMP_FILTER_FLAG_NEW_LISTENER support 2019-10-28 16:54:23 +01:00
Anton Lindqvist
25bb509e59 pkg/report: suppress fifo_badop reports on OpenBSD
This panic is not to interesting since the intended behavior is to panic and
it requires root due to usage of mknod(2).
2019-10-26 09:02:46 +02:00
Paul Chaignon
413926c563 pkg/compiler: check range is consistent with base type
For any intN, values in the range [-MAX_INTN:MAX_INTN] are accepted.

Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
cddfeb2030 sys/linux: fix range in InfiniBand description
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
f2635abc2a sys/linux: use alignment in integer ranges
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
713f727d98 prog, pkg/compiler: alignment for integer ranges
Enables the syntax intN[start:end, alignment] for integer ranges.  For
instance, int32[0:10, 2] represents even 32-bit numbers between 0 and 10
included.  With this change, two NEED tags in syscall descriptions can be
addressed.

Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
ced0f73a67 pkg/compiler: check first int arg is range
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
9113054e42 sys/freebsd: fix int should be const
Signed-off-by: Paul Chaignon <paul.chaignon@orange.com>
2019-10-25 18:16:59 +02:00
Paul Chaignon
618d98cd48 sys/linux: fix int should be const in InfiniBand description 2019-10-25 18:16:59 +02:00
Dmitry Vyukov
018e59bad0 dashboard/app: add link to bug to reproducers
As requested by users.
Fixes #1396
2019-10-25 18:02:24 +02:00
Dmitry Vyukov
c2e837da36 dashboard/app: flexible rules for bug obsoleting
Implement logic described in #1054:
 - close bugs that happened a lot and then stopped faster
 - close bugs in non-final reporting with different period
 - allow closing bugs that happened only on 1 manager with different period

Fixes #1054
2019-10-25 15:56:00 +02:00
Dmitry Vyukov
c401a48c99 sys/linux: add ioctl_ns 2019-10-25 13:41:12 +02:00
Dmitry Vyukov
2d4fab5ed1 dashboard/app: reduce auto-closing timeout to 120 days
See #1054

First simple step.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
ffff482138 dashboard/app: don't log user errors in checkCrashTextAccess too
This pollutes error logs too.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
e1b158574e datastore/app: switch more bug queries to paged queries
Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
44e9a18ae7 dashboard/app: switch foreachBug to using cursors
Cursors seem to be more efficient than Offset-based queries:
https://cloud.google.com/datastore/docs/concepts/queries#datastore-datastore-cursor-paging-go

Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
93b35d600e dashboard/app: use paged query to load bugs on the main page
The bugs query periodically times out. Try to use a paged query.

Update #1448
2019-10-25 13:28:42 +02:00