aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/manager
Commit message (Collapse)AuthorAgeFilesLines
* syz-manager: information about probability-only inputs in dbGrigory Bazilevich11 hours1-2/+9
|
* syz-manager: save kernel commit tag in the crash metainfoGrigory Bazilevich11 hours1-0/+3
| | | | | | | Add hash of actual kernel commit to crash metainfo if available. Signed-off-by: Grigory Bazilevich <g.bazilevich@ispras.ru> Signed-off-by: Sergey Zotov <svzotov@ispras.ru>
* syz-manager: always save crashes and repros locallyGrigory Bazilevich11 hours1-0/+10
| | | | | | | | | | | Save crashes and repros with corresponding kernel and syzkaller configs locally in syz-manager even when they are published to syz-dashboard, to be able to share the crashes with Linux Verification Center (linuxtesting.org). Signed-off-by: Grigory Bazilevich <g.bazilevich@ispras.ru> Signed-off-by: Sergey Zotov <svzotov@ispras.ru> Co-authored-by: Sergey Zotov <svzotov@ispras.ru>
* pkg/manager: display core dumps on the syz-manager web uiAleksandr Nogikh2026-02-174-12/+61
|
* pkg/instance: extract crash dumpsAleksandr Nogikh2026-02-172-0/+11
| | | | | | | | | If the crash dumps are enabled, collect one crash dump per each crash when fuzzing locally. Optionally also collect crash dumps in pkg/instance's Test(). Inspired by Chenxi Huang's downstream changes to syzkaller.
* pkg/manager/diff: add testsAleksandr Nogikh2026-01-265-31/+497
| | | | | Refactor the package to support testing and add a number of basic tests.
* pkg/manager: store status in the diff storageAleksandr Nogikh2026-01-262-2/+27
|
* pkg/manager: split off diff fuzzer functionalityAleksandr Nogikh2026-01-237-953/+1016
| | | | | Move the code to a separate pkg/manager/diff package. Split the code into several files.
* pkg/manager: minor code refactoringsAleksandr Nogikh2026-01-231-53/+59
| | | | | Simplify if conditions and extract a repro result processing from the Loop method.
* all: fix context.Context usageTaras Madan2026-01-211-21/+21
|
* pkg/manager: match full function names in focus areasAleksandr Nogikh2026-01-142-2/+7
| | | | | | When configuring focus areas before directed fuzzing, construct regular expressions that match the exact function names. Otherwise, we end up adding more functions than intended.
* pkg/osutil: fix CreationTimeDmitry Vyukov2026-01-091-3/+1
| | | | | | | | | | We return Ctime from CreationTime. But "C" does not stand for "creation", it stands for "status change" (inode update). It may or may not be the creation time. Use Btime (birth time) for creation time. Fixes #6547
* pkg/vcs: extend ParseGitDiffAleksandr Nogikh2026-01-091-1/+3
| | | | Return not just the modified files, but also their blob hashes.
* pkg/manager/html: fix sorting by "Repro Attempts" columnDmitry Vyukov2026-01-021-2/+2
| | | | | Sorting using numSort for column with empty non-number rows does not work. Always print repro attemps, but make 0 inactive (gray).
* all: use any instead of interface{}Dmitry Vyukov2025-12-222-2/+2
| | | | Any is the preferred over interface{} now in Go.
* pkg/manager: omit fs images from big coverage reportsAleksandr Nogikh2025-11-031-14/+52
| | | | | | | | | In the presence of numerous program seeds that mount fs images, our html coverage reports end up being as big as 1GB, which makes it problematic to render/manipulate them in the web browser. Adjust coverage report generation: once the total size of program seeds exceeds 100MB, switch to the compact seed serialization mode.
* pkg/manager: extend loop termination loggingAleksandr Nogikh2025-10-021-1/+3
| | | | | | | There are still situations where we don't properly terminate fuzzing on context cancelation. Add more logging to debug it.
* pkg/manager: reduce time spend under mutexAleksandr Nogikh2025-10-022-7/+5
| | | | | We don't need it to hold it for the call to the externally supplied callback.
* syz-cluster: configure bug title filterAleksandr Nogikh2025-10-011-16/+17
| | | | | Instead of just checking whether the bug was observed on the base crash, accept a regexp of accepted bug titles as well.
* pkg/manager: add Rank column with tooltips to the main pageTaras Madan2025-08-283-9/+53
|
* pkg/manager: store titles stat in the crash dirTaras Madan2025-08-281-0/+3
|
* pkg/manager: store tail reportsTaras Madan2025-08-281-1/+3
| | | | Send only the first report to dashboard.
* vm: extract all the crashes from the logTaras Madan2025-08-282-2/+6
|
* pkg/manager: add missing thead and tbody HTML tagsJeongjun Park2025-08-289-4/+46
|
* pkg/manager: add Repro Attempt Count columnname29652025-08-281-1/+2
| | | | Add a new column next to it to list the number of repro attempts separately.
* pkg/manager: record the right base kernel crash titleAleksandr Nogikh2025-08-211-11/+11
| | | | | | | When we run a reproducer on a base kernel and it crashes, we must record the crash title observed on the base kernel. Rename the field to reduce the chance of confusion in the future.
* syz-cluster: share base kernel crashes between fuzzing sessionsAleksandr Nogikh2025-08-211-4/+43
| | | | | | Report base kernel crashes observed during fuzzing. Consult the common API for each patched kernel crash to see if it was already observed on the base kernel.
* vm: refactoringTaras Madan2025-08-071-3/+4
| | | | | 1. func Run optionally accepts the opts. 2. Some refactoring, more comments.
* pkg/manager: embed BugInfo into UICrashTypeAleksandr Nogikh2025-08-073-27/+15
| | | | This reduces the redundancy a bit.
* pkg/manager: display repro attemptsAleksandr Nogikh2025-08-072-20/+23
| | | | | | On the syz-manager's html dashboard, dispay the number of repro attempts per each bug. It will help distinguish the bugs where reproduction was attempted and failed from those that have never been reproduced yet.
* pkg/manager: fetch boot errors during patch fuzzingAleksandr Nogikh2025-08-061-0/+17
| | | | The VM pool expects us to listen on the boot error channel.
* pkg/manager: fix a NeedRepro checkAleksandr Nogikh2025-08-062-13/+13
| | | | | It's been checking the inverse of what was needed. Rename the helper function to reduce confusion in the future.
* pkg/manager: remove a dependency on grepAleksandr Nogikh2025-08-051-11/+7
| | | | | | Instead of calling grep (the implementations of which may differ in different environments), traverse the directory and grep files with a special pkg/osutil helper functionality.
* pkg/manager: display manager nameAleksandr Nogikh2025-07-312-1/+3
| | | | If the manager name is set, display it in the header.
* pkg/manager: improve patched crash skip rulesAleksandr Nogikh2025-07-292-6/+26
| | | | | | | The rules were too generic - there are plenty of functions that have "stall" as substring, yet they do not relate to rcu stall bugs. Improve the rules list and add a unit test.
* pkg/manager: do a full reproduction for patched-only bugsAleksandr Nogikh2025-07-292-7/+31
| | | | | | | | After ensuring that a bug only affects the patched kernel, do one more round of reproduction and (if successful) re-report the result. This will ensure that, provided enough time, diff fuzzing results will also have minimalistic C reproducers.
* prog: generate choice table only for enabled callsAleksandr Nogikh2025-07-291-2/+10
| | | | | | | | | | | | | We used to generate a choice table and do its normalization for all present syscalls, also it was not considered during the /prio page generation. Enabled/disabled syscalls were accounted for in the choice table construction, but there's a chance that the resulting table was still somewhat skewed. The situation must have become worse after several thousands of auto syscalls were added.
* pkg/manager: improve coverage filter loggingAleksandr Nogikh2025-07-221-1/+5
| | | | | The previous message was misleading - executor's coverage filter can well be 0, it's the number of PCs per focus area that's of interest.
* pkg/manager: don't check coverage filters too earlyAleksandr Nogikh2025-07-221-7/+9
| | | | Right at the Loop() start, these are not filled out yet.
* all: determine patched symbols for focused fuzzingAleksandr Nogikh2025-07-222-11/+84
| | | | | | | | | Hash the code section of the individual symbols from vmlinux.o and use it to determine the functions that changed their bodies between the base and the patched build. If the number of affected symbols is reasonable (<5%), fuzz it with the highest priority.
* pkg/manager: add a test for PatchFocusAreasAleksandr Nogikh2025-07-221-0/+68
| | | | For that, make a part of the tar_test.go reusable.
* pkg/manager: don't symbolize reportsAleksandr Nogikh2025-07-211-8/+0
| | | | These are already symbolized in pkg/repro.
* pkg/manager: consider matched PCs in zero focused coverage testAleksandr Nogikh2025-07-181-4/+8
| | | | | If we matched 0 PCs for the areas of focused fuzzing, don't abort the process after 30 minutes.
* pkg/manager: fix context propagation to kernelContextAleksandr Nogikh2025-07-181-9/+8
| | | | | Use the context provided via errgroup.Group so that a single error can successfully shut down the whole diff fuzzing process.
* pkg/manager: abort fuzzing if no patched code is reachedAleksandr Nogikh2025-07-181-31/+96
| | | | | Don't waste time doing focused fuzzing if no modified code has been reached in 30 minutes after corpus triage.
* pkg/manager: symbolize diff fuzzing reportsAleksandr Nogikh2025-07-021-0/+8
| | | | | | In syz-manager, we symbolize reports right before saving them. Follow a similar approach for diff fuzzing as well and symbolize only the reports which were confirmed to only affect the patched kernel.
* pkg/manager: use reproducer reliability scoresAleksandr Nogikh2025-06-261-4/+22
| | | | | | During diff fuzzing, ignore too unreliable reproducers completely. For moderately reliable ones, do a larger number of runs.
* vm: func Run accepts contextTaras Madan2025-05-191-2/+4
| | | | It allows to use context as a single termination signal source.
* pkg/manager: improve error accounting during diff fuzzingAleksandr Nogikh2025-05-161-14/+25
| | | | | | | | | When running the reproducer from the patched kernel on the base kernel, stay on the safe side when encountering errors and context cancellations. Always demand 3 successful executions before declaring a bug patched-only.
* pkg/manager: wrap channel writes in selectAleksandr Nogikh2025-04-241-2/+9
| | | | | | | Writes to channels are dangerous in the presence of context cancellation - no one may be listening on the receiving side. Wrap the writes in a select that also awaits ctx.Done().