| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
| |
Instead of a predefined set of manually written syz-manager configs,
construct it dynamically from different bits.
During triage, select not just one, but all matching fuzzer
configurations and then merge them together.
|
| |
|
|
|
|
|
|
| |
Add DB mode when it does not keep records in memory,
instead it re-reads them from disk on compaction.
On my instance this saves 466MB (14.3%) of heap,
which reduces RSS by 900MB (2x due to GC).
|
| |
|
|
| |
It gives reproducibility to syz_execprog and syz_mutate behavior.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
It was too radical to repair and overwrite db file unconditionally.
syz-execprog probes if a given file is a database. Usually it's a crash log
or a single program, but db.Open started to overwrite it.
And an explicit repair flag in db.Open and enable it only in
syz-manager and syz-hub.
Fixes #2997
|
| |
|
|
|
| |
Opening inaccessible file won't fail under root.
Skip the test.
|
| |
|
|
|
|
|
|
| |
corpus.db may get corrupted on an unexpected reset, etc.
Commit a254b0f5 ("pkg/db: properly handle errors when loading a DB")
made these errors fatal and manager never recovers on its own.
Restore the previous behavior when we still recovered some records from the db.
But (1) ensure that the file is at least writable and (2) add tests.
|
| |
|
|
| |
Properly return errors to caller instead of logging them.
|
| |
|
|
|
|
|
|
|
|
|
| |
1. Load test programs directly from sys/OS/test.
Since we have sykaller dir, we don't need separate workdir/seeds.
2. Load test programs into candidates avoiding pulling them into corpus.
This unbreaks mgr.fresh detection and does not pollute corpus with
programs that don't give coverage/contain unsupported syscalls, etc.
Follow up to #2053
|
| |
|
|
|
|
|
| |
This commit enables the syz-manager to add unit test files as corpus to
accelerate fuzzing. The syz-ci would copy unit tests into the
worker/seeds folder for each manager process, and the manager would add
those tests as seed into the corpus.
|
| | |
|
| |
|
|
|
| |
os.Rename fails for cross-device renaming (e.g. to/from tmpfs).
This is quite unpleasant. Provide own version that falls back to copying.
|
| |
|
|
|
|
|
|
| |
This is needed for both tools/syz-db and tools/syz-trace2syz.
Also, remove code to resolve SHA1 collisions.
Also, don't set db version as we actually want to minimize
and smash these programs like anything else
(not minimizing nor smashing them is only useful during tool testing).
|
| |
|
|
|
|
|
| |
Check some errors where relevant.
Unfortunately enabling errcheck does not look feasible, too many warnings.
Update #538
|
| |
|
|
| |
Introduce TempFile helper and use it in several packages.
|
| |
|
|
| |
Update #538
|
| |
|
|
| |
Update #538
|
| |
|
|
| |
Update #538
|
| |
|
|
|
|
|
|
|
|
| |
By default we don't re-minimize/re-smash programs from corpus,
it takes lots of time on start and is unnecessary.
However, when we improve/fix minimization/smashing,
we may want to.
Introduce corpus database versions and allow to re-minimize/re-smash
on version bumps.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we have unix permissions for new files/dirs
hardcoded throughout the code base. Some places use 0644,
some - 0640, some - 0600 and a variety of other constants.
Introduce osutil.MkdirAll/WriteFile that use the default
permissions and use them throughout the code base.
This makes permissions consistent and also allows to easily
change the permissions later if we change our minds.
Also merge pkg/fileutil into pkg/osutil as they become
dependent on each other. The line between them was poorly
defined anyway as both operate on files.
|
| |
|