aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-diff/diff.go
Commit message (Collapse)AuthorAgeFilesLines
* all: determine patched symbols for focused fuzzingAleksandr Nogikh2025-07-221-1/+1
| | | | | | | | | 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: provide diff fuzzer state dumpsAleksandr Nogikh2025-04-151-2/+2
| | | | | | Make the fuzzing step of syz-cluster create the manager.DiffStore object explicitly and dump its state to the logs after finishing the fuzzing session.
* pkg/manager: make diff fuzzer artifacts folder configurableAleksandr Nogikh2025-04-111-1/+2
|
* syz-cluster: integrate with syz-diffAleksandr Nogikh2025-02-041-1/+3
| | | | Run differential fuzzing as a workflow step.
* pkg/manager: accept multiple patches in PatchFocusAreasAleksandr Nogikh2025-01-291-1/+1
| | | | | Make the method more flexible. Rename the variables to better reflect what is being done.
* tools/syz-diff: move the logic to pkg/managerAleksandr Nogikh2025-01-231-480/+2
|
* tools/syz-diff: prepare for moving to pkg/Aleksandr Nogikh2025-01-231-21/+46
| | | | | | Adjust the code to properly handle context cancellation. Replace log.Fatalf() by errors where it was straightforward. Decouple from the global variables.
* all: support empty HTTP configAleksandr Nogikh2025-01-141-11/+13
| | | | | | | | We don't really need an HTTP server when running syz-manager during kernel image testing and when running syz-diff automatically. Don't require the config to be set and don't start the HTTP server in this case.
* executor: query globs in the test program contextDmitry Vyukov2024-12-111-2/+1
| | | | | | | | | | | | | | | | | We query globs for 2 reasons: 1. Expand glob types in syscall descriptions. 2. Dynamic file probing for automatic descriptions generation. In both of these contexts are are interested in files that will be present during test program execution (rather than normal unsandboxed execution). For example, some files may not be accessible to test programs after pivot root. On the other hand, we create and link some additional files for the test program that don't normally exist. Add a new request type for querying of globs that are executed in the test program context.
* pkg/rpcserver: refactoring in preparation for dynamic interface extractionDmitry Vyukov2024-11-261-2/+8
| | | | | | | | | | | Few assorted changes to reduce future diffs: - add rpcserver.RemoteConfig similar to LocalConfig (there are too many parameters) - add CheckGlobs to requesting additional globs from VMs - pass whole InfoRequest to the MachineChecked callback so that it's possible to read globs information - add per-mode config checking in the manager - add Manager.saveJson helper
* pkg/repro: accept a cancellable contextAleksandr Nogikh2024-11-131-4/+12
| | | | | | | | | | Refactor pkg/repro to accept a context.Context object. This will make it look more similar to other package interfaces and will eventually let us abort currently running repro jobs without having to shut down the whole application. Simplify the code by factoring out the parameters common both to RunSyzRepro() and RunCRepro().
* pkg/manager: set more http fields before calling ServeDmitry Vyukov2024-11-071-4/+6
| | | | | | | | | Pools and ReproLoop and always created on start, so there is no need to support lazy set for them. It only complicates code and makes it harder to reason about. Also introduce vm.Dispatcher as an alias to dispatcher.Pool, as it's the only specialization we use in the project.
* pkg/corpus: move focus area configuration to the constructorAleksandr Nogikh2024-10-251-6/+4
| | | | | Set Corpus in HTTPServer dynamically. Refactor syz-manager and syz-diff accordingly.
* tools: add a syz-diff toolAleksandr Nogikh2024-10-251-0/+492
This is the prototype version of the patch series fuzzing functionality based on the syzkaller fuzzing engine. The tool takes two syzkaller configs -- one for the base kernel, one for the patched kernel. Optionally the patch itself can be also provided. syz-diff will consider a bug patched-only if: 1) It happened while fuzzing the patched kernel. 2) It was never observed on the base kernel. 3) The tool found a repro on the patched kernel. 4) The repro did not crash the base kernel.