aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/testdata/linux
Commit message (Collapse)AuthorAgeFilesLines
* executor: remove ability to detect kernel bugsDmitry Vyukov2019-01-311-3/+0
| | | | | | | | This ability was never used but we maintain a bunch of code for it. syzkaller also recently learned to spoof this error code with some ptrace magic (probably intercepted control flow again and exploited executor binary). Drop all of it.
* pkg/report: skip trylock functionsDmitry Vyukov2019-01-221-0/+165
| | | | Skip various *_trylock functions as we do for *_lock functions.
* pkg/report: more tuning for trusty reportsDmitry Vyukov2019-01-152-0/+92
| | | | Update #933
* pkg/report: add parsing of trusty crashesDmitry Vyukov2019-01-143-0/+108
| | | | Update #933
* pkg/report: strip trailing deadlock reportsDmitry Vyukov2019-01-141-0/+368
| | | | | | Oops messages frequently induce possible deadlock reports because oops reporting introduces unexpected locking chains. So if we have enough of the actual oops, strip the deadlock message.
* pkg/report: improve linux report parsing if we have contextsDmitry Vyukov2019-01-061-0/+186
| | | | | If we have contexts, we don't need to strip the first report at the beginning of the second report.
* pkg/report: support CONFIG_PRINTK_CALLERDmitry Vyukov2019-01-0314-0/+2500
| | | | | | | | | | | | | | | | | | CONFIG_PRINTK_CALLER has reached linux-next: https://groups.google.com/d/msg/syzkaller/xEDUgkgFvL8/d5bBS3BJBwAJ Enable CONFIG_PRINTK_CALLER and support parsing of its output format. This gives us several advantages: - output from different contexts don't intermix - intermixed output doesn't cause corrupted reports - we can keep larger prefix since we know it comes from the same task Credit for the kernel part goes to Tetsuo Handa. Also Sergey Senozhatsky and Petr Mladek for reviews of the kernel part. Fixes #596 Fixes #600
* pkg/report: account for new symbol suffixes produced by gcc9Dmitry Vyukov2018-12-312-0/+101
|
* pkg/report: improve parsing of "corrupted stack end detected inside scheduler"Dmitry Vyukov2018-12-306-1/+242
|
* pkg/report: improve double fault parsingDmitry Vyukov2018-12-307-0/+781
| | | | | | | | | | Ignore double faults as start of a second report. Double fault can happen during handling of paging faults if memory is badly corrupted. Also it usually happens synchronously, which means that maybe the report is not corrupted. But of course it can come from another CPU as well. Add more interesting test cases.
* pkg/report: parse linux stack corruption reportsDmitry Vyukov2018-12-303-0/+169
|
* pkg/report: skip strncpy in linux reportsDmitry Vyukov2018-12-121-0/+55
|
* pkg/report: refine rcu stall detectionDmitry Vyukov2018-11-221-0/+69
| | | | Add another anchor frame.
* pkg/report: fix corrupted stack trace checkingDmitry Vyukov2018-11-221-0/+1139
| | | | | | | | | | | | | | We started detecting all kernel reboots as corrupted, because we considered that after any "Allocated" line a stack trace should follow. Kernel boot output now contains: ima: Allocated hash algorithm: sha256 and there is no stack trace after that. 1. Refine stack trace regexps (we actually want to look for "Allocated by task PID:" lines). 2. Don't check stacks if report format says that it does not contain stacks.
* pkg/report: add "PANIC: double fault" report formatDmitry Vyukov2018-11-225-1/+164
| | | | | | | Amusing that's another kernel failure mode that we are discovering after 3 years. One can't even reliably understand when kernel has crashed. I wonder if syzkaller never hit these, or just never recognized and reported them. We will see. Don't even want to think about arm kernel output parsing.
* pkg/report: ignore arch/.*/mm/physaddr.c as guilty fileDmitry Vyukov2018-10-101-0/+51
| | | | | | | This is called from kfree in the added test. We already ignore everything related to kmalloc/free and e.g. arch/.*/mm/fault.c, so it looks reasonable to ignore this one too.
* pkg/report: ignore printk as guilty fileDmitry Vyukov2018-09-281-0/+103
|
* pkg/report: improve KMEMLEAK report parsingDmitry Vyukov2018-09-284-0/+95
| | | | Skip few more common allocation functions.
* pkg/report: fix guilty file extractionDmitry Vyukov2018-09-262-0/+78
| | | | | Account for the case that some file names can appear _before_ crash report starts. Start extracting guilty file starting from StartPos.
* pkg/report: ignore more str* functionsDmitry Vyukov2018-09-243-0/+555
|
* pkg/report: improve KMSAN report parsingDmitry Vyukov2018-09-138-6/+218
| | | | | | Extract guilty frame from stack. Add few more ignored functions. Add more tests.
* pkg/report: improve rcu stall/lockup reportsDmitry Vyukov2018-09-1046-471/+2093
| | | | | | | | | | | | | | | | During rcu stalls and cpu lockups kernel loops in some part of code, usually across several functions. When the stall is detected, traceback points to a random stack within the looping code. We generally take the top function in the stack (with few exceptions) as the bug identity. As the result stalls with the same root would produce multiple reports in different functions, which is bad. Instead we identify a representative function deeper in the stack. For most syscalls it can be the syscall entry function (e.g. SyS_timer_create). However, for highly discriminated functions syscalls like ioctl/read/write/connect we take the previous function (e.g. for connect the one that points to exact protocol, or for ioctl the one that is related to the device). Fixes #710
* pkg/report: ignore mm/memory.c as guilty fileDmitry Vyukov2018-08-291-0/+61
|
* pkg/report: ignore android art debug outputDmitry Vyukov2018-08-251-0/+10
|
* pkg/report: ignore another mutex lock guts functionDmitry Vyukov2018-08-131-0/+102
|
* pkg/report: skip more spinlock framesDmitry Vyukov2018-08-041-0/+116
| | | | | | Currently this report is named: "general protection fault in perf_trace_lock" which is bad.
* pkg/report: fix kmalloc bug in kreallocDmitry Vyukov2018-07-162-0/+136
|
* pkg/report: add "lock held when returning to user space" format for older ↵Dmitry Vyukov2018-07-131-0/+10
| | | | kernels
* pkg/report: add report format for "lock held when returning to user space"Dmitry Vyukov2018-07-121-0/+9
| | | | This report does not have stack trace, so we always detected it as corrupted.
* pkg/report: add suppressions for Go race OOMsDmitry Vyukov2018-06-231-0/+1
|
* pkg/report: add another format for null RIPDmitry Vyukov2018-06-081-0/+119
| | | | Kernel keeps inventing new formats...
* pkg/report: ignore down functions for task hung bugsDmitry Vyukov2018-06-072-0/+446
|
* pkg/report: more "NMI handler took too long" ignoresDmitry Vyukov2018-06-061-0/+2
|
* pkg/report: ignore INFO messages about long interruptsDmitry Vyukov2018-06-042-0/+4
|
* pkg/report: fix remaining lockdep report formatsDmitry Vyukov2018-04-271-0/+161
| | | | | We fixed only 1, but new format affects all lockdep reports. Fix all of them.
* pkg/report: few report parsing fixes for linuxDmitry Vyukov2018-04-266-3/+120
|
* pkg/report: sanitize titles betterDmitry Vyukov2018-04-243-1/+1959
| | | | | | | | Strip non-printable characters from titles. Trim whitespaces on both ends. Replace tabs with spaces. Remove duplicate spaces. Reduce max title length.
* pkg/report: more corrupted report detectionDmitry Vyukov2018-04-241-0/+461
|
* pkg/report: add some example arm crashesDmitry Vyukov2018-04-208-0/+296
|
* pkg/report: coarsen "unregister_netdevice" titleDmitry Vyukov2018-04-191-1/+1
| | | | | | This leads to unbounded number of bug reports as syzkaller can generate new device names dynamically. Exclude actual device name from title.
* pkg/report: filter out more corrupted reports due to fault injectionDmitry Vyukov2018-04-162-0/+640
|
* pkg/report: detect hangs in unregister_netdeviceDmitry Vyukov2018-04-132-0/+151
| | | | | | Add special report format for hangs in unregister_netdevice. And support new format of lockdep reports (otherwise they all are marked as corrupted).
* pkg/report: improve corrupted report detectionDmitry Vyukov2018-04-0927-25/+543
| | | | | | | | | | | 1. If we see should_failslab frames during report parsing, that's a corrupted report with intermixed frames from fault injection stack. 2. If we matched report title and this report should contains a guilty stack frame, but we failed to extract any frame, consider it as corrupted. New tests added. Also one of the old tests is fixed.
* pkg/report: strip "panic_on_warn set" more aggressivelyDmitry Vyukov2018-04-071-0/+127
| | | | | KMSAN reports can be short, but still include full stack. The added test is only 28 lines, so reduce the threshold from 40 to 25 lines.
* pkg/report: don't blame kcovDmitry Vyukov2018-04-061-0/+63
| | | | kcov frame can be present in rcu stalls, ignore it.
* pkg/report: skip list functions during function extractionDmitry Vyukov2018-04-016-0/+1055
| | | | | List functions are very generic and we see lots of different bug merged into "bug-type in list_function".
* pkg/report: detect corrupted task hung reportsDmitry Vyukov2018-04-011-0/+33
|
* pkg/report: add few KMSAN report examplesDmitry Vyukov2018-03-265-1/+332
|
* pkg/report: add another testDmitry Vyukov2018-03-191-0/+101
|
* pkg/report: fix crash during output parsingDmitry Vyukov2018-03-081-0/+9
| | | | | | The test case causes rep.StartPos == secondReportPos, which then makes extraction of description fail, because report is empty.