diff options
author | Robert Swiecki <robert@swiecki.net> | 2018-01-25 17:19:11 +0100 |
---|---|---|
committer | Robert Swiecki <robert@swiecki.net> | 2018-01-25 17:19:11 +0100 |
commit | 34c876f3512028878c1b3c8df0d81aab22ede30e (patch) | |
tree | 5a16496d0728ffe5fa74c48fc9ebe174fdc2ba55 | |
parent | b0c3d4903b600de672e4ef5ddf2e23c13e6d46ae (diff) | |
download | honggfuzz-34c876f3512028878c1b3c8df0d81aab22ede30e.tar.gz |
remove useSanCov and use _HF_DYNFILE_SANCOV
-rw-r--r-- | cmdline.c | 7 | ||||
-rw-r--r-- | display.c | 4 | ||||
-rw-r--r-- | fuzz.c | 6 | ||||
-rw-r--r-- | honggfuzz.h | 2 | ||||
-rw-r--r-- | linux/trace.c | 4 | ||||
-rw-r--r-- | sancov.c | 4 | ||||
-rw-r--r-- | sanitizers.c | 2 |
7 files changed, 14 insertions, 15 deletions
@@ -220,10 +220,10 @@ static bool cmdlineVerify(honggfuzz_t* hfuzz) { } /* - * 'enableSanitizers' can be auto enabled when 'useSanCov', although it's probably + * 'enableSanitizers' can be auto enabled when san_cov is used, although it's probably * better to let user know about the features that each flag control. */ - if (hfuzz->useSanCov == true && hfuzz->enableSanitizers == false) { + if ((hfuzz->dynFileMethod & _HF_DYNFILE_SANCOV) && !hfuzz->enableSanitizers) { LOG_E("Sanitizer coverage cannot be used without enabling sanitizers '-S/--sanitizers'"); return false; } @@ -342,7 +342,6 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) { .sanCov_mutex = PTHREAD_MUTEX_INITIALIZER, .extSanOpts = NULL, - .useSanCov = false, .covMetadata = NULL, .report_mutex = PTHREAD_MUTEX_INITIALIZER, @@ -522,7 +521,7 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) { hfuzz->exe.externalCommand = optarg; break; case 'C': - hfuzz->useSanCov = true; + hfuzz->dynFileMethod |= _HF_DYNFILE_SANCOV; break; case 'S': hfuzz->enableSanitizers = true; @@ -223,7 +223,7 @@ static void display_displayLocked(honggfuzz_t* hfuzz) { display_put(" Coverage :"); /* HW perf specific counters */ - if (hfuzz->dynFileMethod == 0 && !hfuzz->useSanCov) { + if (hfuzz->dynFileMethod == 0) { display_put(" [none]"); } if (hfuzz->dynFileMethod & _HF_DYNFILE_INSTR_COUNT) { @@ -252,7 +252,7 @@ static void display_displayLocked(honggfuzz_t* hfuzz) { } /* Sanitizer coverage specific counters */ - if (hfuzz->useSanCov) { + if (hfuzz->dynFileMethod & _HF_DYNFILE_SANCOV) { uint64_t hitBB = ATOMIC_GET(hfuzz->sanCovCnts.hitBBCnt); uint64_t totalBB = ATOMIC_GET(hfuzz->sanCovCnts.totalBBCnt); float covPer = totalBB ? (((float)hitBB * 100) / totalBB) : 0.0; @@ -442,7 +442,7 @@ static void fuzz_fuzzLoop(run_t* run) { if (run->global->dynFileMethod != _HF_DYNFILE_NONE) { fuzz_perfFeedback(run); } - if (run->global->useSanCov) { + if (run->global->dynFileMethod & _HF_DYNFILE_SANCOV) { fuzz_sanCovFeedback(run); } if (run->global->useVerifier && !fuzz_runVerifier(run)) { @@ -505,7 +505,7 @@ static void fuzz_fuzzLoopSocket(run_t* run) { if (run->global->dynFileMethod != _HF_DYNFILE_NONE) { fuzz_perfFeedback(run); } - if (run->global->useSanCov) { + if (run->global->dynFileMethod & _HF_DYNFILE_SANCOV) { fuzz_sanCovFeedback(run); } if (run->global->useVerifier && !fuzz_runVerifier(run)) { @@ -633,7 +633,7 @@ void fuzz_threadsStart(honggfuzz_t* hfuzz, pthread_t* threads) { /* Don't do dry run with socketFuzzer */ LOG_I("Entering phase - Feedback Driven Mode (SocketFuzzer)"); hfuzz->state = _HF_STATE_DYNAMIC_MAIN; - } else if (hfuzz->useSanCov || hfuzz->dynFileMethod != _HF_DYNFILE_NONE) { + } else if (hfuzz->dynFileMethod != _HF_DYNFILE_NONE) { LOG_I("Entering phase 1/2: Dry Run"); hfuzz->state = _HF_STATE_DYNAMIC_DRY_RUN; } else { diff --git a/honggfuzz.h b/honggfuzz.h index 99dbe78c..7ad96fd0 100644 --- a/honggfuzz.h +++ b/honggfuzz.h @@ -92,6 +92,7 @@ typedef enum { _HF_DYNFILE_BTS_EDGE = 0x10, _HF_DYNFILE_IPT_BLOCK = 0x20, _HF_DYNFILE_SOFT = 0x40, + _HF_DYNFILE_SANCOV = 0x80, } dynFileMethod_t; typedef struct { @@ -263,7 +264,6 @@ typedef struct { pthread_mutex_t sanCov_mutex; const char* extSanOpts; size_t dynFileIterExpire; - bool useSanCov; node_t* covMetadata; pthread_mutex_t report_mutex; diff --git a/linux/trace.c b/linux/trace.c index 25d02048..623b8af0 100644 --- a/linux/trace.c +++ b/linux/trace.c @@ -719,7 +719,7 @@ static void arch_traceSaveData(run_t* run, pid_t pid) { * If fuzzing with sanitizer coverage feedback increase crashes counter used * as metric for dynFile evolution */ - if (run->global->useSanCov) { + if (run->global->dynFileMethod & _HF_DYNFILE_SANCOV) { run->sanCovCnts.crashesCnt++; } @@ -999,7 +999,7 @@ static void arch_traceExitSaveData(run_t* run, pid_t pid) { * If fuzzing with sanitizer coverage feedback increase crashes counter used * as metric for dynFile evolution */ - if (run->global->useSanCov) { + if (run->global->dynFileMethod & _HF_DYNFILE_SANCOV) { run->sanCovCnts.crashesCnt++; } @@ -678,7 +678,7 @@ static bool sancov_sanCovParse(run_t* run) { * Enabled methods are controlled from sanitizer flags in arch.c */ void sancov_Analyze(run_t* run) { - if (!run->global->useSanCov) { + if (!(run->global->dynFileMethod & _HF_DYNFILE_SANCOV)) { return; } /* @@ -691,7 +691,7 @@ void sancov_Analyze(run_t* run) { } bool sancov_Init(honggfuzz_t* hfuzz) { - if (hfuzz->useSanCov == false) { + if (!(hfuzz->dynFileMethod & _HF_DYNFILE_SANCOV)) { return true; } sancov_trieCreate(&hfuzz->covMetadata); diff --git a/sanitizers.c b/sanitizers.c index 7a2c84f4..ce232d3f 100644 --- a/sanitizers.c +++ b/sanitizers.c @@ -111,7 +111,7 @@ static void sanitizers_AddFlag(honggfuzz_t* hfuzz, const char* env, char* buf, s if (!hfuzz->enableSanitizers) { snprintf(buf, buflen, "%s=%s", env, kSAN_REGULAR); - } else if (hfuzz->useSanCov) { + } else if (hfuzz->dynFileMethod & _HF_DYNFILE_SANCOV) { snprintf(buf, buflen, "%s=%s:%s:%s:%s%s/%s:%s%s/%s", env, kASAN_OPTS, abortFlag, kSAN_COV_OPTS, kSANCOVDIR, hfuzz->io.workDir, _HF_SANCOV_DIR, kSANLOGDIR, hfuzz->io.workDir, kLOGPREFIX); |