aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/linux.go
Commit message (Collapse)AuthorAgeFilesLines
* syz-fuzzer: improve kmemleak supportDmitry Vyukov2018-01-091-2/+6
| | | | | | | | Don't print object size (can change from kernel to kernel and from config to config). Fix function extraction regexp (must be non-eager). Account for MSECS_MIN_AGE. Ignore some known false positives.
* pkg/report: ignore kernel/workqueue.c as guilty fileDmitry Vyukov2018-01-081-0/+1
|
* pkg/report: don't treat CONFIG_DEBUG_OBJECTS debug output as bugsDmitry Vyukov2018-01-061-0/+2
|
* pkg/report: fix __this_cpu_* report header call trace captureAndrey Konovalov2017-12-131-3/+3
|
* pkg/report: add another corruped report formatDmitry Vyukov2017-12-121-0/+5
|
* pkg/report: properly infer kernel location if kcov is not enabledDmitry Vyukov2017-12-121-18/+28
| | | | | | We used to infer kernel source location based on __sanitizer_cov_trace_pc symbol. But it's not present if KCOV is not enabled. Look at more symbols.
* pkg/report: improve using __this_cpu_add() in preemptible code reportDmitry Vyukov2017-12-121-2/+2
|
* pkg/report: handle syzkaller binariesDmitry Vyukov2017-12-121-2/+5
| | | | syzkallerNNN binaries are coming from pkg/repro.
* pkg/report: clean guilty filesDmitry Vyukov2017-12-121-1/+2
|
* pkg/report: bad unlock balance can be a WARNINGAndrey Konovalov2017-12-111-0/+11
|
* pkg/report: detect corrupted old-style KASAN reportsAndrey Konovalov2017-12-111-0/+12
|
* pkg/report: better detect corrupted stack tracesAndrey Konovalov2017-12-111-0/+7
| | | | | We may find stack frames from the second stack trace in a report when searching from frames of the first one.
* pkg/report: improve report header extractionAndrey Konovalov2017-12-111-4/+21
| | | | | | | | Allow stack traces to be intermixed with random kernel messages that don't start with a ' ' char (all frames in a stack trace do). Also improve report headers for BUGs from mm/usercopy.c, as we get quite a lot of those.
* pkg/report: fix corrupted call trace detectionAndrey Konovalov2017-12-081-1/+2
| | | | | linuxSymbolizeRe can match "IP: depot_fetch_stack+0x11/0x40", which is not part of the call stack trace. Add another regexp that only matches frames.
* pkg/report: add arch/*/mm/fault.c to guilty file blacklistAndrey Konovalov2017-12-081-0/+1
|
* pkg/report: fix report extractionAndrey Konovalov2017-12-081-68/+46
| | | | | | | | | | | Try extracting report from console output only first. If that doesn't work, try extracting it from the whole log. Add regexp for executor printed BUGs. Optimize regexps for rcu detected stalls. Update rep.StartPos and rep.EndPos in vm/vm.go as well as rep.Output.
* pkg/report: add proper oops format for kernel rebootDmitry Vyukov2017-12-051-5/+11
|
* pkg/report: fix out-of-bounds accessDmitry Vyukov2017-12-041-1/+1
| | | | Update #457
* pkg/report: test that Report is never emptyDmitry Vyukov2017-12-041-0/+4
| | | | | | | If Parse detects a crash, it must provide something in the Report field. If Report is empty, something is wrong with parsing. Update #457
* pkg/report: extinguish panicsDmitry Vyukov2017-12-041-0/+3
| | | | | | | We see panic during report parsing as in #457. This does not really fix them, but should stop managers crashing. Update #457
* pkg/report: return raw log in Report.OutputAndrey Konovalov2017-12-011-1/+1
|
* pkg/report, pkg/repro: fix report parsingAndrey Konovalov2017-12-011-41/+44
| | | | | pkg/repro expects pkg/report to return CrashStart index in the whole report, not only in the kernel output.
* pkg/report: improve task hung report headersAndrey Konovalov2017-11-301-4/+8
|
* pkg/report: improve trying to register non-static key headerAndrey Konovalov2017-11-301-0/+8
|
* pkg/report: include Maintainers into reportDmitry Vyukov2017-11-291-14/+36
| | | | | | | | | | | | | | | | | | Currently getting a complete report requires a complex, multi-step dance (including getting information that external users are not interested in -- guilty file). Simplify interface down to 2 functions: Parse and Symbolize. Parse does what it did before, Symbolize symbolizes report and fills in maintainers. This simplifies both implementations of Reporter interface and all users of the interface. Potentially we could get this down to 1 function Parse that does everything. However, (1) Symbolize can fail, while Parse cannot, (2) usually we want to ignore (log) Symbolize errors, but otherwise proceed with the report, (3) repro does not need symbolization for all but the last report.
* pkg/report: improve bad unlock balance corruption detectionAndrey Konovalov2017-11-291-2/+3
|
* pkg/report: add Output to ReportDmitry Vyukov2017-11-291-1/+3
| | | | | | | | | Whole raw output is indivisble part of Report, currently we always pass Output separately along with Report. Make Output a Report field. Then, put whole Report into manager Crash and repro context and Result. There is little point in passing Report as aa bunch of separate fields.
* pkg/report: detect suspicious RCU usage report corruptionAndrey Konovalov2017-11-291-0/+10
|
* pkg/report: add sl*b.c to guilty blacklistAndrey Konovalov2017-11-291-0/+1
|
* pkg/report: fix corrupted stack trace detectionAndrey Konovalov2017-11-281-2/+2
| | | | Look for stack frames in the next 10 lines after 'Call Trace' instead of 3.
* pkg/report: various corrupted report detection improvementsAndrey Konovalov2017-11-231-356/+254
|
* pkg/report: fix corrupted reports detectionAndrey Konovalov2017-11-221-19/+97
| | | | | 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-221-4/+5
| | | | KASAN report might not have Allocated or Freed stack traces at all.
* pkg/report: corrupted report detection fixesAndrey Konovalov2017-11-221-49/+102
|
* 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-141-15/+15
| | | | | | | | | 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.
* pkg/report: combine report data into a structDmitry Vyukov2017-11-141-19/+19
| | | | | 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-131-2/+142
| | | | | This change makes pkg/report try to detect corrupted reports by using some heuristics.
* pkg/report: more linux spinlock oops messagesDmitry Vyukov2017-10-221-6/+2
|
* pkg/report: strip unnecessary info from "workqueue lockup" crashesDmitry Vyukov2017-10-181-2/+6
|
* pkg/report: support freebsdDmitry Vyukov2017-10-181-42/+0
|
* pkg/report: support multiple OSesDmitry Vyukov2017-10-181-0/+705
Introduce report.Reporter interface. Add an implementation per-OS. Make users be explicit about OS they are testing.