aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/linux.go
Commit message (Collapse)AuthorAgeFilesLines
* pkg/report: move TitleToCrashType to crash packageDmitry Vyukov2026-01-091-1/+1
| | | | | | | | | TitleToCrashType is a simple function with no heavy dependencies that is used by the dashboard app. Currnetly we have to import pkg/report into dashboard/app, and this package has lots of heavy deps (symbolizer, demangler, coverage report generation, etc). Move TitleToCrashType to pkg/report/crash (where it arguably belongs anyway).
* all: remove unused nolint directivesDmitry Vyukov2026-01-021-1/+1
|
* pkg/report: ignore the fast_dput/dput framesPimyn Girgis2025-12-011-0/+2
| | | | | | | fast_dput and dput are too generic. This causes several different bugs to be merged into one. See: https://syzkaller.appspot.com/bug?extid=b74150fd2ef40e716ca2 Ingore the fast_dput/dput frames when selecting the bug title.
* pkg/report: adapt to the new WARN formatAleksandr Nogikh2025-11-261-5/+11
| | | | | | | | | The format has been changed recently: https://lore.kernel.org/all/20251110114633.202485143@infradead.org/ This commit addresses the duplicates we currently see among the linux-next bugs, but likely there are more. We'll fix it once we notice them.
* pkg/report: support optional CRC in backtrace linesPimyn Girgis2025-11-031-2/+3
| | | | | | | | At some point kmemleak started adding a CRC checksum to the "backtrace:" line in memory leak reports. The existing regular expression did not account for this, causing parsing to fail for these reports. Update the regex to make the CRC component optional, allowing reports both with and without the checksum to be parsed correctly.
* pkg/report: skip crypto frames for KMSAN reportsAleksandr Nogikh2025-10-131-1/+5
| | | | | | | | | This bug is at least one case where we merge several different KMSAN reports because they end up being triggered in the same generic code: https://syzkaller.appspot.com/bug?id=6290a184e96e8fb4b657700adcd243ef195113e1 Skip some common symbols from crypto/ so that the titles become more specific.
* pkg/report: exclude crc implementations from guilty filesAleksandr Nogikh2025-07-211-0/+2
| | | | | | | If these happen to be in the stack frames, in almost all cases it will be due to a bug in the calling code. See the discussion in #5784.
* pkg/report: split crash.KFENCETaras Madan2025-07-041-2/+2
|
* dashboard/app: use crash types instead, no regexpsTaras Madan2025-07-021-1/+1
|
* pkg/report: factor out type definitionsTaras Madan2025-06-271-115/+48
|
* pkg/report: minor refactoringTaras Madan2025-06-201-5/+5
| | | | | | setExecutorInfo is closer to Report. Distinguish reportType and defaultReportType Make setter a Report member function.
* pkg/report: use crash.KMSANTaras Madan2025-06-201-0/+2
| | | | We have crash.KMSAN definition that is not used.
* pkg/report: improve Rust report parsingAleksandr Nogikh2025-06-201-0/+21
| | | | | | | We need to look for the error type after the "rust_kernel: panicked" line. Ignore some common irrelevant frames.
* pkg/report: demangle Rust reportsAleksandr Nogikh2025-06-181-0/+2
| | | | | | | | Do demangling as a part of Symbolize() processing. Add a TestSymbolize test to verify the results. Fix old report_test.go bugs to better react to the -update flags. Closes #6035.
* pkg/report: refactor Linux report symbolizationAleksandr Nogikh2025-06-181-40/+93
| | | | | | | | Parse and assemble Linux backtrace lines independently of whether vmlinux is present. Refactor the code to make it easier to insert more postprocessing actions.
* pkg/report: ignore the __alloc_frozen_pages_noprof frameAleksandr Nogikh2025-06-171-0/+1
| | | | | | | | | | Even though __alloc_frozen_pages_noprof has the WARN_ON, the actual problem lies in how malloc was called down the stacktrace. This leads to several different bugs being merged into one: https://syzkaller.appspot.com/bug?extid=03fb58296859d8dbab4d Ingore the __alloc_frozen_pages_noprof frame when selecting the bug title.
* pkg/report: parse the new WARNING formatAleksandr Nogikh2025-06-171-0/+5
| | | | | | | | The format has been slightly changed lately and we have started to get duplicates of the exiting reports, e.g. https://syzkaller.appspot.com/bug?extid=077d9ebda84f426a6a1e Adjust the parsing rules to keep the resulting bug titles unchanged.
* pkg/report: skip the folio_unlock frameAleksandr Nogikh2025-06-111-1/+1
| | | | | | | It's too generic and leads to merging unrelated crash reports. See https://syzkaller.appspot.com/bug?extid=c0dc46208750f063d0e0 and the related LKML discussion.
* pkg/report: ignore xfs-printed warningsTaras Madan2025-05-021-0/+1
| | | | Closes #5968
* pkg/report: strip the __se_sys_ prefixAleksandr Nogikh2025-04-151-0/+1
| | | | | It will reduce the amount of duplicated reports. See #5940.
* pkg/report: include partially stripped prefixes to alt titlesAleksandr Nogikh2025-04-151-12/+13
| | | | | It will help avoid bug duplication in case of adding new prefixes to strip.
* pkg: use kernelDir instead of 3 parametersTaras Madan2025-03-271-5/+5
| | | | It allows to reduce parameters count for some functions.
* pkg/symbolizer: introduce Symbolizer interfaceTaras Madan2025-03-071-4/+3
| | | | To simplify interface Read*Symbols were moved out from symbolizer.Symbolizer.
* pkg/report: ignore some timer-related framesAleksandr Nogikh2025-02-121-0/+4
| | | | | This will untangle the crashes of https://syzkaller.appspot.com/bug?extid=bf36934adc7979488192
* pkg/report: ignore _INFO:Aleksandr Nogikh2025-01-031-2/+1
| | | | | | | These can lead to false positives when BPF debugging data is printed, e.g. [ 461.316169][ T3168] [U] [1] INVALID BTF_INFO:72000001
* pkg/report: fix parsing of HWASAN reportsDmitry Vyukov2024-12-121-0/+1
| | | | Currently we mis-parse all of them, and attribute the bug to HWASAN.
* pkg/report: skip get_taint and put_deviceAleksandr Nogikh2024-12-051-0/+2
| | | | | These frames are not very informative. See https://syzkaller.appspot.com/bug?extid=72d3b151aacf9fa74455
* pkg/report: ignore one more informational warningAleksandr Nogikh2024-12-051-1/+1
| | | | | | | Prevent syzkaller from reacting to: "warning: `syz.1.261' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211".
* pkg/report: ignore the "uses deprecated v2 capabilities" warningAleksandr Nogikh2024-12-051-0/+1
|
* pkg/report: ignore the drop_nlink frameAleksandr Nogikh2024-11-181-0/+1
| | | | | | | It's a helper used by many different filesystems. Let's be more specific. https://syzkaller.appspot.com/bug?extid=651ca866e5e2b4b5095b
* pkg/report: improve "Bad page state" parsingDmitry Vyukov2024-11-151-1/+1
| | | | | | | | We've got a dup: https://syzkaller.appspot.com/bug?extid=d6f5b7a41831ca1a99a0 for an exising report: https://syzkaller.appspot.com/bug?extid=be32baeb2433f286bc24
* pkg/report: ignore warnings printed by __ext4_msgAleksandr Nogikh2024-10-301-0/+1
| | | | | These are just warnings to the system administrator. Ignore them during fuzzing.
* pkg/report: improve Bad page state parsingAleksandr Nogikh2024-10-221-2/+16
| | | | Take a frame from the stack trace that is included in the bug report.
* pkg/report: filter out false reboot reportsSabyrzhan Tasbolatov2024-09-101-2/+2
| | | | | | | | | | | Strict regexp rules to avoid false reboot reports as "Booting the kernel." should always start from the start and at the end of line. Also addressed in unit test the previous fix in https://github.com/google/syzkaller/commit/026e2200. Fixes: https://github.com/google/syzkaller/issues/3955
* pkg/report: support module format with stacktrace_build_idJoey Jiao2024-09-031-1/+8
| | | | | Call trace can have line like below printed by %pSb: func_name+0x254/0x5f0 [module_name b31b29679ab712c360bddd861f655ab24898b4db]
* pkg/report: ignore rhashtable_lookup framesAleksandr Nogikh2024-08-301-0/+1
| | | | | | Bugs are unlikely to be in the rhashtable code itself. Example: https://syzkaller.appspot.com/bug?extid=128aaac913636290e5a9
* pkg/report: extract the syz-executor infoAleksandr Nogikh2024-08-221-0/+21
| | | | | For Linux bugs, extract the proc id and the prog id from the crash report.
* pkg/report: remove args which already in ctxJoey Jiao2024-07-231-7/+4
|
* pkg/report: cleanPath for frame.FileJoey Jiao2024-07-231-4/+3
|
* pkg/report: support to symbolize line with module+offsetJoey Jiao2024-07-231-8/+31
|
* pkg/report: suppress executor SIGBUSDmitry Vyukov2024-07-011-0/+1
| | | | | | SIGBUS means OOM on Linux. Most of the crashes that happen during fuzzing are SIGBUS, so separate them from SIGSEGV and suppress.
* executor: add runner modeDmitry Vyukov2024-06-241-3/+3
| | | | | | | Move all syz-fuzzer logic into syz-executor and remove syz-fuzzer. Also restore syz-runtest functionality in the manager. Update #4917 (sets most signal handlers to SIG_IGN)
* pkg/report: ignore cleanup_srcu_structAleksandr Nogikh2024-06-141-0/+1
| | | | See https://syzkaller.appspot.com/bug?extid=6cf577c8ed4e23fe436b
* pkg/report: ignore __fortify_reportAleksandr Nogikh2024-06-141-0/+1
| | | | This is a too generic frame.
* sys/targets: mark big-endian targetsDmitry Vyukov2024-06-041-9/+3
| | | | | | Litte-endian is kind of default (except for s390). So instead of saying that each arch is litte-endian, mark only s390 as big-endian.
* pkg/report: ignore __phys_addrAleksandr Nogikh2024-05-031-0/+1
| | | | | | | This is not the place of the actual bug. We end up collecting too many different reports in one place: https://syzkaller.appspot.com/bug?extid=daa1128e28d3c3961cb2
* pkg/report: remove unnecessary NewScan() callsAleksandr Nogikh2024-04-151-15/+20
| | | | | These are susceptible to potentially very long lines in the input. Direct splitting by \n is more reliable.
* pkg/report: fix OOB in linux.symbolize()Aleksandr Nogikh2024-04-151-16/+5
| | | | | | | | | | | | | NewScanner() had an implicit limit on the maximum line size, which we could surpass e.g. by printing some long serialized program. In this case, there's no reason to use NewScanner() -- we already have the whole buffer, so let's use raw byte operations instead. Remove one of the checks that turned out to be unneeded, but leave an assertion inside the symbolize() method. Closes #4198.
* pkg/report: add more assertionsAleksandr Nogikh2024-04-101-0/+17
| | | | It should hopefully help debug #4198.
* pkg/report: make "mand mount option" regexps more robustAleksandr Nogikh2024-04-101-1/+1
| | | | | | In some cases, we may only collect a part of the kernel output. There are no other "mand mount option" warnings in the kernel, so let's match by a shorter regexp.