aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
Commit message (Collapse)AuthorAgeFilesLines
* vm/gce: fix boot output captureDmitry Vyukov2017-11-221-10/+0
| | | | | | Turns out GetSerialPortOutput API does not work if instance has serial port connections enabled (which we always have). Get output from serial port relay service instead.
* pkg/report: fix corrupted reports detectionAndrey Konovalov2017-11-224-183/+217
| | | | | Add another regexp to oopses that should match the whole report. Report is considered corrupted when it doesn't.
* pkg/report: fix corrupted KASAN reports detectionAndrey Konovalov2017-11-222-4/+45
| | | | KASAN report might not have Allocated or Freed stack traces at all.
* pkg/report: corrupted report detection fixesAndrey Konovalov2017-11-224-60/+116
|
* pkg/email: ignore missing To: headerDmitry Vyukov2017-11-221-4/+2
| | | | We've got such email.
* pkg/repro: don't bisect single entryAndrey Konovalov2017-11-221-0/+5
|
* vm: return Report from MonitorExecutionDmitry Vyukov2017-11-211-5/+5
| | | | | | This allows callers to get access to Report.Corrupted. Better than adding 6-th return value and will allow to pipe other report properties if necessary.
* sys/linux: remove get_kernel_syms, add quotactl syscallDmitry Vyukov2017-11-201-1/+13
| | | | | | get_kernel_syms does not seem to be present upstream. Describe an old quotactl syscall. Also fix umount/umount2 names in kallsyms.
* vm/gce: provide VM console output on boot failuresDmitry Vyukov2017-11-191-0/+10
| | | | "can't ssh into the instance" is not a very useful error.
* pkg/email: unsplit arguments for test commandDmitry Vyukov2017-11-172-2/+88
|
* pkg/email: truncate garbage after patchesDmitry Vyukov2017-11-173-4/+67
|
* pkg/csource: add function to parse serialized optionsDmitry Vyukov2017-11-174-105/+215
| | | | | Also move options and options tests into a separate file, add serialization function.
* pkg/osutil: properly set gid for sandboxingDmitry Vyukov2017-11-171-11/+25
|
* pkg/git: fix branch during fetchDmitry Vyukov2017-11-171-1/+1
|
* pkg/kernel: sandbox make invocationDmitry Vyukov2017-11-179-38/+170
|
* pkg/osutil: don't leace runaway processesDmitry Vyukov2017-11-1614-35/+89
| | | | | | When manager is stopped there are sometimes runaway qemu processes still running. Set PDEATHSIG for all subprocesses. We never need child processes outliving parents.
* pkg/git: provide more helper functionsDmitry Vyukov2017-11-162-0/+126
| | | | | Add Patch, Checkout, CheckRepoAddress and CheckBranch. Will be needed for patch testing.
* pkg/email: fix base64-encoded body parsingDmitry Vyukov2017-11-161-4/+4
| | | | | We currently handle base64 only for attachments, but text/plain body can also be base64-encoded.
* pkg/config: provide SaveData functionDmitry Vyukov2017-11-161-1/+5
| | | | Parallel to LoadFile/LoadData.
* pkg/report: avoid compiling a bunch of regexps on every crashDmitry Vyukov2017-11-141-88/+89
|
* pkg/report: pass report as []byte to isCorruptedDmitry Vyukov2017-11-141-21/+19
| | | | | | We always pass report/log as []byte. Pass it here the same way for consistency and to avoid unnecessary large memory allocation/copy.
* pkg/report, pkg/repro, syz-manager: name crash attributes consistentlyDmitry Vyukov2017-11-146-63/+63
| | | | | | | | | We currently have several names for crash attributes, which is disturbing. E.g. crash title is called "Title" or "Desc". Name them consistently. Title - single line bug identity. Report - whole crash text. Log - whole fuzzer/kernel output.
* pkg/report: make isCorrupted linux-specificDmitry Vyukov2017-11-141-2/+2
| | | | | isCorrupted is linux-specific, but is a global function. Name can collide with other OSes. Make is linux method.
* vm: remove needOutput arg for MonitorExecutionDmitry Vyukov2017-11-141-1/+1
| | | | | | Always wait 10 secs for output. If anything this can only lead to missed crashes during repro. Let's unify manager and repro behavior.
* pkg/report: combine report data into a structDmitry Vyukov2017-11-1410-82/+96
| | | | | Parse returns 5 variables now. Later we may want to add crash "priority". Introduce Report struct that holds all report data.
* pkg/report: add corrupted report detectionAndrey Konovalov2017-11-1311-506/+1075
| | | | | This change makes pkg/report try to detect corrupted reports by using some heuristics.
* executor: proceed even if /dev/net/tun is not availableAndrey Konovalov2017-11-081-2/+12
| | | | | | | | | For some racy bugs syzkaller can generate a C reproducer with tun enabled, when it's not actuallly required to trigger the bug. Some kernel developers (that don't have CONFIG_TUN=y on their setups) complain about such C repros. When tun is not available, instead of exiting, print a message that tun initialization failed and proceed.
* pkg/git: add another commit prefixDmitry Vyukov2017-11-081-0/+1
|
* execprog: correctly handle fault injectionsAndrey Konovalov2017-11-071-1/+1
| | | | | | syz-execprog doesn't utilize info about fault injections from a prog log. Since syz-execprog is used by the repro package to reproduce crashes, crashes caused by fault injections might not reproduce.
* syz-ci: improve commit matchingDmitry Vyukov2017-11-072-4/+48
| | | | | | | | | | 1. Fetch last 200K commits instead of commits for past year. For merged commits both author date and commit date can be arbitrary long in past (e.g. we got a commit dated by 2014). 2. Strip some commit prefixes from commits. We have some trees where backports are prefixed with "BACKPORT:". Previously we could no match such commits.
* csource: Fix sed(1) invocationzoulasc2017-11-061-4/+4
| | | | | | | | There is no need to specify '-' as the filename for sed(1): - The default behavior is to read stdin - It was not done in all places - It breaks on NetBSD sed(1) (although I am tempted to fix it now :-) and it does not work
* dashboard/app: email fixesDmitry Vyukov2017-10-312-0/+28
| | | | | | | 1. Allows sending emails upstream. 2. Filter out duplicate emails coming from our mailing lists. 3. Increase retry attempts for email commands (don't want them to fail due to concurrent crash reports from managers).
* pkg/csource: add freebsd/netbsd supportDmitry Vyukov2017-10-264-0/+652
|
* pkg/report: add netbsd stubDmitry Vyukov2017-10-252-0/+54
|
* all: basic building on netbsdDmitry Vyukov2017-10-233-1/+24
| | | | | This just makes make TARGETOS=netbsd succeed. We don't yet have prog target for netbsd.
* syz-fuzzer: fix manager pollingDmitry Vyukov2017-10-231-3/+4
| | | | | We need to always poll manager to send stats/maxsignal, we just need not request candidates if we have plenty of work.
* pkg/ipc: fix reading comp hintsDmitry Vyukov2017-10-231-15/+13
| | | | if/else branches are intermixed
* pkg/report: more linux spinlock oops messagesDmitry Vyukov2017-10-222-6/+28
|
* executor: fix build breakages due to doexitDmitry Vyukov2017-10-192-6/+21
| | | | | Some standard libraries contain "using ::exit;", which breaks with the current redefinition of exit.
* pkg/ast: fix TestParseAllDmitry Vyukov2017-10-191-10/+6
|
* pkg/report: strip unnecessary info from "workqueue lockup" crashesDmitry Vyukov2017-10-182-2/+10
|
* pkg/ipc: move fallback coverage into executorDmitry Vyukov2017-10-181-14/+0
| | | | | It seems to explode linux corpus. So make it freebsd-specific.
* executor: use forkserver for freebsdDmitry Vyukov2017-10-181-0/+14
| | | | | | | Use forkserver and shmem for freebsd. This greatly improves speed. Also introduce fallback coverage signal based on unique (syscall+errno) pairs.
* pkg/report: support freebsdDmitry Vyukov2017-10-186-80/+275
|
* pkg/report: support multiple OSesDmitry Vyukov2017-10-1811-2827/+3137
| | | | | | Introduce report.Reporter interface. Add an implementation per-OS. Make users be explicit about OS they are testing.
* pkg/report: don't use access size for KASAN reportsDmitry Vyukov2017-10-172-2/+8
| | | | | | | 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.
* executor: fix akaros nonfailing modeDmitry Vyukov2017-10-161-1/+9
|
* executor, pkg/ipc: unify ipc protocol between linux and other OSesDmitry Vyukov2017-10-1620-813/+966
| | | | | | | | | | | | | | | | | We currently use more complex and functional protocol on linux, and a simple ad-hoc protocol on other OSes. This leads to code duplication in both ipc and executor. Linux supports coverage, shared memory communication and fork server, which would also be useful for most other OSes. Unify communication protocol and parametrize it by (1) use of shmem or only pipes, (2) use of fork server. This reduces duplication in ipc and executor and will allow to support the useful features for other OSes easily. Finally, this fixes akaros support as it currently uses syz-stress running on host (linux) and executor running on akaros.
* pkg/csource: support akarosDmitry Vyukov2017-10-165-130/+552
|
* pkg/host: add akaros supportDmitry Vyukov2017-10-161-0/+19
|