aboutsummaryrefslogtreecommitdiffstats
path: root/config
Commit message (Collapse)AuthorAgeFilesLines
* config: split and refactorDmitry Vyukov2017-06-012-410/+0
| | | | | | | | | Introduce generic config.Load function that can be reused across multiple programs (syz-manager, syz-gce, etc). Move the generic config functionality to pkg/config package. The idea is to move all helper (non-main) packages to pkg/ dir, because we have more and more of them and they pollute the top dir. Move the syz-manager config parts into syz-manager/config package.
* config: use reflect to enumerate all known fields rather than do it manuallybaishuai2017-05-312-60/+23
|
* config: fix odroid config parsingDmitry Vyukov2017-03-111-5/+5
| | | | There is a fallthrough in "gce" which now falls thrugh to "odroid" and fails there.
* vm: add Odroid supportAndrey Konovalov2017-03-101-15/+56
| | | | | | | | | | | This commit adds Odroid C2 support to syzkaller. It's now possible to specify "type": "odroid" in manager config. Documentation on how to setup fuzzing with Odroid C2 board is here: https://github.com/google/syzkaller/wiki/Setup:-Odroid-C2 Note, that after this change libusb-1.0-0-dev package should be installed to build syzkaller.
* manager: add ability to communicate with dashboardDmitry Vyukov2017-02-171-0/+22
| | | | | Manager can send crashes and repros to a dashboard app. Dashboard app is not checked-in yet.
* config: add another OOM suppressionDmitry Vyukov2017-02-151-0/+1
|
* config: don't mess with imageDmitry Vyukov2017-01-201-3/+0
| | | | | We have "9p" special value, also GCE images are not local paths. Don't mess with it.
* config: allow relative paths in configsDmitry Vyukov2017-01-201-0/+21
|
* syz-manager: add option to turn off crash reproducingDmitry Vyukov2017-01-201-2/+5
| | | | | Reproducing is still turned on by default, turning it off can be useful for benchmarking.
* config: add another suppression for Go OOMDmitry Vyukov2017-01-091-0/+1
|
* sys: don't add clock_gettime alwaysDmitry Vyukov2017-01-091-2/+1
| | | | | | | | | | Currently we always enable clock_gettime in config. This is required since the call is needed for generation of timespec/timeval structs. The negative side effect is that one gets clock_gettime even if he wants to fuzz a small set of unrelated syscalls. Don't enable clock_gettime by default. Instead handle timeval/timespec as other resources.
* manager: add ability to ignore bugsDmitry Vyukov2016-12-192-37/+47
| | | | | | Add new config parameter "ignores" which contains list of regexp expressions. If one of the expressions is matched against oops line, crash report is not saved and VM is not restarted.
* sys: add proc type to denote per proccess integersAndrey Konovalov2016-11-251-0/+3
|
* config: use dense indices for VMsDmitry Vyukov2016-11-251-1/+1
| | | | | | | | | | | | | | CreateVMConfig uses fileutil.ProcessTempDir to assign indices to VMs. fileutil.ProcessTempDir generates unique indices globally across several processes. This was required for old vm/qemu code that used the index to choose unique ssh port for the VM. Now vm/qemu does not use index as port and this global index assignment started causing problems for adb and gce. Adb really needs indexes to be dense -- index is used to choose adb device id (if we have 2 devices, index 3 causes out of bounds panic). For gce it leads to creation of unnecessary VM instances (if I set count=4, I want at most 4 VMs created). Don't use fileutil.ProcessTempDir-generated index in CreateVMConfig and instead just use the dense indices passed by caller.
* vm/qemu: support non-native modeDmitry Vyukov2016-11-221-16/+19
| | | | | | Add config bin_args parameter that contains additional arguments for qemu binary. This allows to specify e.g. "bin_args": "-machine virt -cpu cortex-a57". Also restore qemu debugging output when -debug flag is specified.
* syz-hub: add programDmitry Vyukov2016-11-171-0/+5
| | | | syz-hub is used to exchange programs between syz-managers.
* vm/gce: actually append name to instance namesDmitry Vyukov2016-11-161-1/+1
|
* config: whitelist name parameterDmitry Vyukov2016-11-161-0/+1
|
* syz-gce,syz-manager: add name config parameterDmitry Vyukov2016-11-161-0/+1
| | | | | | Name is used for identification on web ui and included in gce instance names (so that several managers can coexist in a single project).
* manager: save user tag with crash reportsDmitry Vyukov2016-10-071-0/+2
| | | | | | | If config contains "tag" parameter, save it along with crash reports. The tag is meant to contain kernel branch/commit hash. If workdir contains crashes from different kernel versions, it is useful to be able to find out on what kernel revision a crash happened.
* config: remove unused parameterDmitry Vyukov2016-10-071-2/+0
|
* vm/gce: add support GCE VMsDmitry Vyukov2016-10-061-13/+22
|
* config: add another OOM message to suppressionsDmitry Vyukov2016-09-051-1/+2
|
* sys: resolve some old TODOs in descriptionsDmitry Vyukov2016-09-051-1/+1
|
* config: suppress another common errorDmitry Vyukov2016-09-051-0/+1
|
* report: extract better, unique identifiers of oopsesDmitry Vyukov2016-08-311-2/+1
|
* vm/adb: support multiple adb devicesDmitry Vyukov2016-08-301-26/+45
| | | | Device IDs are specified in "devices" config param.
* manager: add a special VM type "none"Dmitry Vyukov2016-08-051-3/+17
| | | | | | | Type "none" in config says manager to not manage any VMs, and just manage the corpus (it still server RPCs). This is useful when something else manages the VMs and starts fuzzer processes on them.
* config: add Initrd to known fieldsDmitry Vyukov2016-07-201-0/+1
|
* Merge branch 'master' of https://github.com/google/syzkaller into for_submitJeremyHuang2016-07-072-4/+89
|\
| * executor: revive setuid sandboxDmitry Vyukov2016-07-011-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The new namespace-based sanboxing is good, but it's not always what one wants (and also requires special kernel configs). Change dropprivs config value to sandbox, which can have different values (currently: none, setuid, namespace). Setuid mode uses setuid(nobody) before fuzzing as before. In future we can add more sandboxing modes or, say, extend -sandbox=setuid to -sandbox=setuid:johndoe to impersonolate into given user.
| * config: detect unknown fields in configsDmitry Vyukov2016-07-012-0/+75
| |
* | added an optional initrd flag.JeremyHuang2016-07-071-1/+1
| |
* | add a initrd flag for qemu type and display the qemu command.JeremyHuang2016-06-201-0/+2
|/
* config: fix calculation of enabled syscallsDmitry Vyukov2016-02-191-4/+0
| | | | | Manager does not assume that empty syscalls list means that all syscalls are enabled. So fill it always.
* fuzzer: warn about absent kcov/kmemleak filesDmitry Vyukov2016-02-161-3/+7
| | | | | | | Currently the failure mode is too obscure, so warn explicitly about these common cases. Also make local mode more usable.
* config: check presence of syz-execprog only in syz-reproDmitry Vyukov2016-02-161-3/+0
| | | | syz-execprog is not built by 'make', so syz-manager fails for first-timers.
* ipc: unify command line flag handlingDmitry Vyukov2016-01-271-3/+5
| | | | It was duplicated in 3 programs.
* sys: allow to open all devices as stopgapDmitry Vyukov2016-01-241-2/+2
|
* vm/adb: use a more reliable way to reboot devicesDmitry Vyukov2016-01-201-0/+1
|
* config: add another builtin suppressionDmitry Vyukov2016-01-201-0/+1
|
* vm: refactor VM interface in preparation for adb supportDmitry Vyukov2016-01-111-11/+14
| | | | | adb has more complex port forwarding setup, also / is mounted read-only. Make VM interface more flexible to support such cases.
* fuzzer: allow to write programs to dmesgDmitry Vyukov2015-12-311-0/+9
| | | | Mostly useful for local VM.
* config: update suppression for new binary nameDmitry Vyukov2015-12-281-1/+1
|
* syz-manager: filter out programs with disabled syscalls from corpusDmitry Vyukov2015-12-241-24/+19
| | | | Fixes #9
* vm: improve VM interfaceDmitry Vyukov2015-12-231-0/+200
Current interface is suitable only for running syz-fuzzer. Make the interface more generic (boot, copy file, run an arbitrary command). This allows to build other tools on top of vm package (e.g. reproducer creation).