diff options
| author | Andrey Konovalov <andreyknvl@google.com> | 2019-01-16 14:50:43 +0100 |
|---|---|---|
| committer | Andrey Konovalov <andreyknvl@gmail.com> | 2019-01-16 19:19:53 +0100 |
| commit | c2faf9b2d5b583f53d01b8b483e26b61ed72cbbf (patch) | |
| tree | 8223752709973ec927c4291fda3f3341a5ef0ea6 /executor | |
| parent | b5df78dc5d994bc61f1ecee2c5c85313178f392e (diff) | |
all: detect extra coverage support
Based on whether the kernel supports KCOV_REMOTE_ENABLE ioctl.
Diffstat (limited to 'executor')
| -rw-r--r-- | executor/defs.h | 10 | ||||
| -rw-r--r-- | executor/executor.cc | 13 |
2 files changed, 14 insertions, 9 deletions
diff --git a/executor/defs.h b/executor/defs.h index a493c2b51..fd3f039a6 100644 --- a/executor/defs.h +++ b/executor/defs.h @@ -60,7 +60,7 @@ #if GOARCH_386 #define GOARCH "386" -#define SYZ_REVISION "2add9eb5de33dbfa073790d7af2cb5a543062225" +#define SYZ_REVISION "1c5197fbb1cb70ac384135081dec18423f4e1bd1" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -70,7 +70,7 @@ #if GOARCH_amd64 #define GOARCH "amd64" -#define SYZ_REVISION "85924b0693363419c2ea4f8588a815526691dd50" +#define SYZ_REVISION "3f0e0ea59ae728d37a8cdd5e77a5beeb718a88f6" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -80,7 +80,7 @@ #if GOARCH_arm #define GOARCH "arm" -#define SYZ_REVISION "5fb6ba1fcab442e1305ff81004954b7ee140e165" +#define SYZ_REVISION "3391e0fa8ed2299b0beda67f40c24a913c0b6a5b" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -90,7 +90,7 @@ #if GOARCH_arm64 #define GOARCH "arm64" -#define SYZ_REVISION "7f0cf979fc6d1fc624ee0f2187d86f90279b0574" +#define SYZ_REVISION "d0d53f46334e628e33432e1655016df33dda9386" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -100,7 +100,7 @@ #if GOARCH_ppc64le #define GOARCH "ppc64le" -#define SYZ_REVISION "debbebfbc6525345884bd5c7595a0d8804bc46db" +#define SYZ_REVISION "e8c9edb8f62f65ca64b9679162b4e5995ad2aaa9" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 diff --git a/executor/executor.cc b/executor/executor.cc index bb0e8defd..a0357c188 100644 --- a/executor/executor.cc +++ b/executor/executor.cc @@ -120,6 +120,7 @@ static sandbox_type flag_sandbox; static bool flag_enable_tun; static bool flag_enable_net_dev; static bool flag_enable_fault_injection; +static bool flag_extra_cover; static bool flag_collect_cover; static bool flag_dedup_cover; @@ -373,8 +374,10 @@ int main(int argc, char** argv) cover_open(&threads[i].cov, false); } cover_open(&extra_cov, true); - // Don't enable comps because we don't use them in the fuzzer yet. - cover_enable(&extra_cov, false, true); + if (flag_extra_cover) { + // Don't enable comps because we don't use them in the fuzzer yet. + cover_enable(&extra_cov, false, true); + } } int status = 0; @@ -456,6 +459,7 @@ void parse_env_flags(uint64 flags) flag_enable_tun = flags & (1 << 5); flag_enable_net_dev = flags & (1 << 6); flag_enable_fault_injection = flags & (1 << 7); + flag_extra_cover = flags & (1 << 8); } #if SYZ_EXECUTOR_USES_FORK_SERVER @@ -567,7 +571,8 @@ retry: if (flag_cover && !colliding) { if (!flag_threaded) cover_enable(&threads[0].cov, flag_collect_comps, false); - cover_reset(&extra_cov); + if (flag_extra_cover) + cover_reset(&extra_cov); } int call_index = 0; @@ -938,7 +943,7 @@ void write_call_output(thread_t* th, bool finished) void write_extra_output() { #if SYZ_EXECUTOR_USES_SHMEM - if (!flag_cover || flag_collect_comps) + if (!flag_cover || !flag_extra_cover || flag_collect_comps) return; cover_collect(&extra_cov); if (!extra_cov.size) |
