From 14a65c40375a6cd73e91ed2093610b136dfdb55d Mon Sep 17 00:00:00 2001 From: Joey Jiao Date: Fri, 12 Mar 2021 18:13:14 +0800 Subject: executor, syz-fuzzer: fix readonly root --- executor/cov_filter.h | 8 ++++---- executor/executor.cc | 12 +++++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'executor') diff --git a/executor/cov_filter.h b/executor/cov_filter.h index a8b6624fe..8c7531d1f 100644 --- a/executor/cov_filter.h +++ b/executor/cov_filter.h @@ -14,13 +14,13 @@ struct cov_filter_t { static cov_filter_t* cov_filter; -static void init_coverage_filter() +static void init_coverage_filter(char* filename) { - int f = open("/syz-cover-bitmap", O_RDONLY); + int f = open(filename, O_RDONLY); if (f < 0) { // We don't fail here because we don't know yet if we should use coverage filter or not. // We will receive the flag only in execute flags and will fail in coverage_filter if necessary. - debug("bitmap is no found, coverage filter disabled\n"); + debug("bitmap is not found, coverage filter disabled\n"); return; } struct stat st; @@ -55,7 +55,7 @@ static bool coverage_filter(uint64 pc) } #else -static void init_coverage_filter() +static void init_coverage_filter(char* filename) { } #endif diff --git a/executor/executor.cc b/executor/executor.cc index 35123b32d..161616be4 100644 --- a/executor/executor.cc +++ b/executor/executor.cc @@ -444,7 +444,17 @@ int main(int argc, char** argv) // Don't enable comps because we don't use them in the fuzzer yet. cover_enable(&extra_cov, false, true); } - init_coverage_filter(); + char sep = '/'; +#if GOOS_windows + sep = '\\'; +#endif + char filename[1024] = {0}; + char* end = strrchr(argv[0], sep); + size_t len = end - argv[0]; + strncpy(filename, argv[0], len + 1); + strncat(filename, "syz-cover-bitmap", 17); + filename[sizeof(filename) - 1] = '\0'; + init_coverage_filter(filename); } int status = 0; -- cgit mrf-deployment