aboutsummaryrefslogtreecommitdiffstats
path: root/executor
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2019-01-16 14:50:43 +0100
committerAndrey Konovalov <andreyknvl@gmail.com>2019-01-16 19:19:53 +0100
commitc2faf9b2d5b583f53d01b8b483e26b61ed72cbbf (patch)
tree8223752709973ec927c4291fda3f3341a5ef0ea6 /executor
parentb5df78dc5d994bc61f1ecee2c5c85313178f392e (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.h10
-rw-r--r--executor/executor.cc13
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)