aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/mgrconfig/load.go
Commit message (Collapse)AuthorAgeFilesLines
* prog: support snapshot-only callsDmitry Vyukov2026-01-021-17/+19
| | | | Update #5308
* pkg/mgrconfig: export defaultValues functionDmitry Vyukov2025-12-181-3/+3
| | | | It may be useful if the config value is synthesised programmatically.
* pkg/mgrconfig: export SplitTarget functionDmitry Vyukov2025-11-241-22/+20
| | | | It will be useful for new syz-agent binary in the future.
* pkg/mgrconfig: ensure reproduce is set to false when type is set to nonePimyn Girgis2025-11-041-0/+5
|
* tools: repair syz-testbuildAleksandr Nogikh2025-04-221-7/+13
| | | | | | 1. Properly set up a manager config. 2. Use clang/ld.lld by default. 3. Set the right boot partition for qemu VMs.
* pkg: use kernelDir instead of 3 parametersTaras Madan2025-03-271-0/+14
| | | | It allows to reduce parameters count for some functions.
* all: enable run_fsck by defaultAleksandr Nogikh2025-02-061-0/+1
| | | | | Check for the existence of fsck binaries and report their absence only once.
* all: support empty HTTP configAleksandr Nogikh2025-01-141-1/+0
| | | | | | | | 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.
* all: add support for binaries shipped with targetStefan Wiehler2024-12-171-3/+17
| | | | | | | | | | | In some build environments (notably Yocto), syzkaller host and target binaries end up in separate packages for each built architecture, which are then shipped with the respective image/SDK. Add the "Execprog/ExecutorBinOnTarget" and "StraceBinOnTarget" options to the manager config, which when set expects the respective binaries to be shipped with the target image and does not attempt to copy them from the host.
* pkg/mgrconfig: properly convert cover_filterAleksandr Nogikh2024-10-281-0/+1
| | | | | | | | | If we have converted one way of configuration into another, we should reset the old one. Otherwise after the processing in syz-ci both will be set and the instance no longer starts due to "you cannot use both cov_filter and focus_areas".
* pkg/mgrconfig, syz-manager: support focus areasAleksandr Nogikh2024-10-251-0/+38
| | | | | Switch from the CoverageFilter to the more flexible mechanism of focus areas.
* pkg/mgrconfig: increase the timeouts if running on QEMU with TCGAlexander Potapenko2024-10-221-0/+6
| | | | | | Previously we were assuming that QEMU with matching host/guest architectures was using -enable-kvm, but for arm64 that's not always the case.
* pkg/mgrconfig, prog, sys/linux: add automatic_helper attributePimyn Girgis2024-09-091-1/+2
| | | | | Add automatic_helper attribute and enable it for system calls that are required to properly run automatically generated descriptions. Enable these system calls when descriptions_mode = `Auto`.
* pkg/manager: move coverage filter code out of syz-managerAleksandr Nogikh2024-09-061-2/+2
| | | | This will enable the reuse of the functionality elsewhere.
* syz-manager: switch snapshots to dispatcher.PoolAleksandr Nogikh2024-08-131-3/+0
| | | | It lets us get bug reproductions out of box.
* pkg/mgrconfig, prog, tools: allow automatically generated or manually ↵Pimyn Girgis2024-08-121-5/+34
| | | | | | written descriptions or both Add "Auto" type and allow to choose descriptions mode in configurations. Defaults to using manual only.
* all: add qemu snapshotting modeDmitry Vyukov2024-07-251-17/+27
|
* pkg/report: support to symbolize line with module+offsetJoey Jiao2024-07-231-0/+3
|
* pkg/mgrconfig: allow to disable remote coverage and coverage edgesDmitry Vyukov2024-07-021-0/+4
|
* executor: add runner modeDmitry Vyukov2024-06-241-6/+1
| | | | | | | 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)
* sys/targets: add consts for gvisor/starnixDmitry Vyukov2024-05-271-1/+1
| | | | | Lint started warning about duplicate "gvisor" const in pkg/cover. Add gvisor/starnix consts to sys/targets package to avoid duplication.
* syz-manager: repair VM-less modeDmitry Vyukov2024-05-271-0/+6
| | | | | VM-less mode stopped working after addition of RPCServer.createInstance. Repair it.
* pkg/mgrconfig: add HasCovFilter helperDmitry Vyukov2024-04-291-0/+4
| | | | To reduce diff in the next change.
* all: use special placeholder for errorsTaras Madan2023-07-241-1/+1
|
* all: ioutil is deprecated in go1.19 (#3718)Taras Madan2023-02-231-2/+1
|
* all: introduce asset storage config to syz-managerAleksandr Nogikh2022-10-041-0/+9
| | | | | | | | Let users set the asset storage config in the syz-manager config. When running under syz-ci, pass the asset storage config from the syz-ci. Create an asset storage instance on the start of syz-manager. Refactor some of syz-manager code to make it less complex.
* pkg/mgrconfig, prog, syz-fuzzer: manager-configurable syscall mutationHrutvik Kanabar2022-09-221-2/+26
| | | | | | | | | | | | | | | | | | Allow manager configuration to specify that certain syscalls should not be mutated. This is expected to be useful when mutating certain syscalls is unlikely to produce interesting executions. For example, mutating a `syz_mount_image` call will likely produce a corrupt image. Some implementation details: - Add a `no_mutate_syscalls` manager config entry, with the same format as `enable_syscalls`. Ensure this is parsed and stored in the config as a set of syscall IDs. - Send this set to fuzzers when they connect to their managers via RPC. Ensure each fuzzer stores a copy of the set. - When mutating arguments of a syscall, check first whether it has been specified as non-mutatable. - For all mutations not managed by a `syz-manager`, retain previous behaviour by ensuring that no syscalls are considered non-mutable.
* all: run strace on each found reproducerAleksandr Nogikh2022-04-291-0/+6
| | | | | | | | If `strace_bin` is specified, syzkaller will invoke a reproducer with it and save the output. This should help in debugging. If syz-manager is attached to a dashboard, upload the strace-powered output and report.
* syz-manager: add preserve_progs configAleksandr Nogikh2022-02-041-7/+8
| | | | | Introduce a presere_progs parameter, which, if set to false, forces syz-manager to purge unneeded programs from the corpus.
* syz-manager: add the "fuzzing_vms" flagAleksandr Nogikh2021-10-091-0/+4
| | | | | | | | Currenly there are no means to limit the total number of reproducing instances and syzkaller can de facto suspend fuzzing when there are many new bug types. Introduce the option to control this behavior.
* syz-manager: support oauth when calling syz-hubGreg Steuck2021-07-301-1/+0
| | | | Permit empty hub_key to indicate oauth.
* pkg/mgrconfig: make dashboard_key unnecessaryAleksandr Nogikh2021-07-151-1/+0
| | | | | | | | | | | | Update mgrconfig tests so that they properly test manager configuration. Add dummy files to the testdata directory so that it looks like a real syzkaller folder. Adjust gce1.cfg to test the situation when there dashboard_client is not accompanied by dashboard_key. Make dashboard_key unnecessary.
* pkg/mgrconfig: don't build syz-executor for fuchsiaMarco Vanotti2021-04-091-1/+5
| | | | Fuchsia provides its own copy of syz-executor, built in tree.
* pkg/mgrconfig: add a value to the json config fileJohannes Wellhöfer2021-03-041-6/+7
| | | | | | | Add a configureable value for the maximum number of logs stored per crash to the json config format. syz-manager: use the new config value
* all: make timeouts configurableDmitry Vyukov2020-12-281-0/+20
| | | | | | Add sys/targets.Timeouts struct that parametrizes timeouts throughout the system. The struct allows to control syscall/program/no output timeouts for OS/arch/VM/etc. See comment on the struct for more details.
* syz-hub: support input domainsDmitry Vyukov2020-12-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Hub input domain identifier (optional). The domain is used to avoid duplicate work (input minimization, smashing) across multiple managers testing similar kernels and connected to the same hub. If two managers are in the same domain, they will not do input minimization after each other. If additionally they are in the same smashing sub-domain, they will also not do smashing after each other. By default (empty domain) all managers testing the same OS are placed into the same domain, this is a reasonable setting if managers test roughly the same kernel. In this case they will not do minimization nor smashing after each other. The setting can be either a single identifier (e.g. "foo") which will affect both minimization and smashing; or two identifiers separated with '/' (e.g. "foo/bar"), in this case the first identifier affects minimization and both affect smashing. For example, if managers test different Linux kernel versions with different tools, a reasonable use of domains on these managers can be: - "upstream/kasan" - "upstream/kmsan" - "upstream/kcsan" - "5.4/kasan" - "5.4/kcsan" - "4.19/kasan" Fixes #2095
* pkg/mgrconfig: remove Syz prefix from fieldsDmitry Vyukov2020-11-301-13/+13
| | | | | | | Everything in syzkaller is syz-something, it's pointless to add syz prefix to everything and unnecessary increases clutter. Remove the prefix. Also, rename ExecutorCmd in target to ExecutorBin to make it consistent with mgrconfig and ExecprogBin/FuzzerBin.
* pkg/mgrconfig: add prog&sys.targets targets to ConfigDmitry Vyukov2020-11-301-10/+24
| | | | | | These are widely used with the config as the refactoring shows. This removes a bunch of unnecessary code. Also fixes a number of bugs where we confused Arch with VMArch.
* pkg/mgrconfig: move derived fields into separate structDmitry Vyukov2020-11-301-0/+13
| | | | | | Users should not be concerned with the internal derived fields. Move all derived fields into a separate struct before adding more. This leaves config.go as a better documentation for end users.
* pkg/mgrconfig: break import cycle in testsDmitry Vyukov2020-11-211-3/+3
| | | | | | | A future change makes vm/* depend on pkg/report, and pkg/report already depends on pkg/mgrconfig. This introduces a cycle for mgrconfig tests. Move tests into a separate package.
* pkg/mgrconfig: extend proc param descriptionDmitry Vyukov2020-07-031-3/+3
|
* pkg/mgrconfig: fix errors reported by linterDmitry Vyukov2020-05-121-23/+35
| | | | | pkg/mgrconfig/load.go:78:1: cyclomatic complexity 26 of func `Complete` is high (> 24) sys/targets/targets.go:217: File is not `gofmt`-ed with `-s`
* pkg/mgrconfig: convert all paths to absoluteDmitry Vyukov2020-05-111-0/+8
| | | | | Qemu can use ssh key after chdir to workdir. Consistently apply Abs to all paths.
* prog: support disabled attributeDmitry Vyukov2020-05-041-0/+5
| | | | | Update #477 Update #502
* vm: add workdir_template functionalityDmitry Vyukov2019-12-031-0/+7
| | | | | | | | | | | | | | | | | The new manager config argument workdir_template refers to a directory. Optional. Each VM will get a recursive copy of the files that are present in workdir_template. VM config can then use these private copies as needed. The copy directory can be referenced with "{{TEMPLATE}}" string. This is different from using the files directly in that each instance will get own clean, private, scratch copy of the files. Currently supported only for qemu_args argument of qemu VM type. Use example: Create a template dir with necessary files: $ mkdir /mytemplatedir $ truncate -s 64K /mytemplatedir/fd Then specify the dir in the manager config: "workdir_template": "/mytemplatedir" Then use these files in VM config: "qemu_args": "-fda {{TEMPLATE}}/fd"
* executor: refactor sandbox flagsDmitry Vyukov2019-11-161-2/+2
| | | | In preparation for future changes.
* tools/syz-symbolize: fix kernel dir calculationDmitry Vyukov2019-09-031-8/+12
| | | | | | | syz-symbolize did not use the common mgrconfig logic to calculate kernel dirs. Thus KernelBuildSrc ended up empty, +dirs were not extended to absolute paths. Use the common mgrconfig logic to calculate kernel dirs.
* pkg/cover: fix prefix computationSiddharth M2019-07-171-0/+3
| | | | | | | | | | | | | | | | | | * pkg/cover: Modify parsing logic 1. Remove prefix computation 2. Add a mgrconfig for kernel build directory * pkg/report: shorten reports with kernelBuildSrc instead of kernelSrc * pkg/report: Fix failing tests * pkg/report: fix formating issues * tools/syz-cover: Fix unintended redefinition * make changes to fix failing ci build * pkg/report: fix issues
* docs: don't duplicate manager config parametersDmitry Vyukov2019-05-211-0/+236
Currently we have them duplicated in docs/configuration.md and the actual source in pkg/mgrconfig/config.go. Documentation is missing in one place or another, some is outdated, some is phrased slightly differently. Move all docs to pkg/mgrconfig/config.go and reference it from docs/configuration.md instead.