diff options
author | Robert Swiecki <robert@swiecki.net> | 2018-03-02 03:35:11 +0100 |
---|---|---|
committer | Robert Swiecki <robert@swiecki.net> | 2018-03-02 03:35:11 +0100 |
commit | e9231d6adc7308a20c959dc5fe5d8ca38d5b4d48 (patch) | |
tree | dcb708e5664df60abbee1d9563d898357d943364 | |
parent | fe6f15cc14e1efcb54334a95ecfdbd7d6296a023 (diff) | |
download | honggfuzz-e9231d6adc7308a20c959dc5fe5d8ca38d5b4d48.tar.gz |
honggfuzz: move more vars to substructs
-rw-r--r-- | cmdline.c | 8 | ||||
-rw-r--r-- | display.c | 2 | ||||
-rw-r--r-- | fuzz.c | 8 | ||||
-rw-r--r-- | honggfuzz.h | 2 | ||||
-rw-r--r-- | input.c | 24 | ||||
-rw-r--r-- | mangle.c | 8 |
6 files changed, 26 insertions, 26 deletions
@@ -223,8 +223,8 @@ static bool cmdlineVerify(honggfuzz_t* hfuzz) { return false; } - if (hfuzz->maxFileSz > _HF_INPUT_MAX_SIZE) { - LOG_E("Maximum file size '%zu' bigger than the maximum size '%zu'", hfuzz->maxFileSz, + if (hfuzz->mutate.maxFileSz > _HF_INPUT_MAX_SIZE) { + LOG_E("Maximum file size '%zu' bigger than the maximum size '%zu'", hfuzz->mutate.maxFileSz, (size_t)_HF_INPUT_MAX_SIZE); return false; } @@ -277,6 +277,7 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) { .dictionaryFile = NULL, .dictionaryCnt = 0, .mutationsPerRun = 6U, + .maxFileSz = 0UL, }, .cmdline_txt[0] = '\0', .useScreen = true, @@ -284,7 +285,6 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) { .blacklistFile = NULL, .blacklistCnt = 0, .blacklist = NULL, - .maxFileSz = 0UL, .reportFile = NULL, .skipFeedbackOnTimeout = false, .enableSanitizers = false, @@ -534,7 +534,7 @@ bool cmdlineParse(int argc, char* argv[], honggfuzz_t* hfuzz) { hfuzz->dynFileMethod |= _HF_DYNFILE_SOFT; break; case 'F': - hfuzz->maxFileSz = strtoul(optarg, NULL, 0); + hfuzz->mutate.maxFileSz = strtoul(optarg, NULL, 0); break; case 't': hfuzz->timing.tmOut = atol(optarg); @@ -210,7 +210,7 @@ static void display_displayLocked(honggfuzz_t* hfuzz) { display_put(" Corpus Size : " ESC_BOLD "%" _HF_NONMON_SEP "zu" ESC_RESET ", max size: " ESC_BOLD "%" _HF_NONMON_SEP "zu" ESC_RESET " bytes, init dir: " ESC_BOLD "%" _HF_NONMON_SEP "zu" ESC_RESET " files\n", - hfuzz->dynfileqCnt, hfuzz->maxFileSz, ATOMIC_GET(hfuzz->io.fileCnt)); + hfuzz->dynfileqCnt, hfuzz->mutate.maxFileSz, ATOMIC_GET(hfuzz->io.fileCnt)); display_put(" Cov Update : " ESC_BOLD "%s" ESC_RESET " ago\n" ESC_RESET, lastCovStr); display_put(" Coverage :"); @@ -546,9 +546,9 @@ static void* fuzz_threadNew(void* arg) { /* Do not try to handle input files with socketfuzzer */ if (!hfuzz->socketFuzzer) { - if (!(run.dynamicFile = files_mapSharedMem( - hfuzz->maxFileSz, &run.dynamicFileFd, "hfuzz-input", run.global->io.workDir))) { - LOG_F("Couldn't create an input file of size: %zu", hfuzz->maxFileSz); + if (!(run.dynamicFile = files_mapSharedMem(hfuzz->mutate.maxFileSz, &run.dynamicFileFd, + "hfuzz-input", run.global->io.workDir))) { + LOG_F("Couldn't create an input file of size: %zu", hfuzz->mutate.maxFileSz); } } defer { @@ -578,7 +578,7 @@ static void* fuzz_threadNew(void* arg) { break; } - input_setSize(&run, run.global->maxFileSz); + input_setSize(&run, run.global->mutate.maxFileSz); if (hfuzz->socketFuzzer) { fuzz_fuzzLoopSocket(&run); } else { diff --git a/honggfuzz.h b/honggfuzz.h index b4a7fa40..211fa076 100644 --- a/honggfuzz.h +++ b/honggfuzz.h @@ -226,6 +226,7 @@ typedef struct { size_t dictionaryCnt; size_t mutationsMax; unsigned mutationsPerRun; + size_t maxFileSz; } mutate; bool useScreen; bool useVerifier; @@ -233,7 +234,6 @@ typedef struct { const char* blacklistFile; uint64_t* blacklist; size_t blacklistCnt; - size_t maxFileSz; char* reportFile; bool skipFeedbackOnTimeout; bool enableSanitizers; @@ -53,8 +53,8 @@ #include "libhfcommon/util.h" void input_setSize(run_t* run, size_t sz) { - if (sz > run->global->maxFileSz) { - PLOG_F("Too large size requested: %zu > maxSize: %zu", sz, run->global->maxFileSz); + if (sz > run->global->mutate.maxFileSz) { + PLOG_F("Too large size requested: %zu > maxSize: %zu", sz, run->global->mutate.maxFileSz); } run->dynamicFileSz = sz; } @@ -91,9 +91,9 @@ static bool input_getDirStatsAndRewind(honggfuzz_t* hfuzz) { LOG_D("'%s' is not a regular file, skipping", fname); continue; } - if (hfuzz->maxFileSz != 0UL && st.st_size > (off_t)hfuzz->maxFileSz) { + if (hfuzz->mutate.maxFileSz != 0UL && st.st_size > (off_t)hfuzz->mutate.maxFileSz) { LOG_D("File '%s' is bigger than maximal defined file size (-F): %" PRId64 " > %" PRId64, - fname, (int64_t)st.st_size, (int64_t)hfuzz->maxFileSz); + fname, (int64_t)st.st_size, (int64_t)hfuzz->mutate.maxFileSz); } if ((size_t)st.st_size > maxSize) { maxSize = st.st_size; @@ -102,13 +102,13 @@ static bool input_getDirStatsAndRewind(honggfuzz_t* hfuzz) { } ATOMIC_SET(hfuzz->io.fileCnt, fileCnt); - if (hfuzz->maxFileSz == 0U) { + if (hfuzz->mutate.maxFileSz == 0U) { if (maxSize < 8192) { - hfuzz->maxFileSz = 8192; + hfuzz->mutate.maxFileSz = 8192; } else if (maxSize > _HF_INPUT_MAX_SIZE) { - hfuzz->maxFileSz = _HF_INPUT_MAX_SIZE; + hfuzz->mutate.maxFileSz = _HF_INPUT_MAX_SIZE; } else { - hfuzz->maxFileSz = maxSize; + hfuzz->mutate.maxFileSz = maxSize; } } @@ -117,7 +117,7 @@ static bool input_getDirStatsAndRewind(honggfuzz_t* hfuzz) { } LOG_D("Re-read the '%s', maxFileSz:%zu, number of usable files:%zu", hfuzz->io.inputDir, - hfuzz->maxFileSz, hfuzz->io.fileCnt); + hfuzz->mutate.maxFileSz, hfuzz->io.fileCnt); rewinddir(hfuzz->io.inputDirPtr); @@ -336,7 +336,7 @@ bool input_prepareStaticFile(run_t* run, bool rewind) { } snprintf(run->origFileName, sizeof(run->origFileName), "%s", fname); - ssize_t fileSz = files_readFileToBufMax(fname, run->dynamicFile, run->global->maxFileSz); + ssize_t fileSz = files_readFileToBufMax(fname, run->dynamicFile, run->global->mutate.maxFileSz); if (fileSz < 0) { LOG_E("Couldn't read contents of '%s'", fname); return false; @@ -370,7 +370,7 @@ bool input_prepareExternalFile(run_t* run) { } LOG_D("Subporcess '%s' finished with success", run->global->exe.externalCommand); - ssize_t sz = files_readFromFdSeek(fd, run->dynamicFile, run->global->maxFileSz, 0); + ssize_t sz = files_readFromFdSeek(fd, run->dynamicFile, run->global->mutate.maxFileSz, 0); if (sz == -1) { LOG_E("Couldn't read file from fd=%d", fd); return false; @@ -401,7 +401,7 @@ bool input_postProcessFile(run_t* run) { } LOG_D("Subporcess '%s' finished with success", run->global->exe.externalCommand); - ssize_t sz = files_readFromFdSeek(fd, run->dynamicFile, run->global->maxFileSz, 0); + ssize_t sz = files_readFromFdSeek(fd, run->dynamicFile, run->global->mutate.maxFileSz, 0); if (sz == -1) { LOG_E("Couldn't read file from fd=%d", fd); return false; @@ -70,11 +70,11 @@ static inline void mangle_Move(run_t* run, size_t off_from, size_t off_to, size_ } static void mangle_Inflate(run_t* run, size_t off, size_t len) { - if (run->dynamicFileSz >= run->global->maxFileSz) { + if (run->dynamicFileSz >= run->global->mutate.maxFileSz) { return; } - if (len > (run->global->maxFileSz - run->dynamicFileSz)) { - len = run->global->maxFileSz - run->dynamicFileSz; + if (len > (run->global->mutate.maxFileSz - run->dynamicFileSz)) { + len = run->global->mutate.maxFileSz - run->dynamicFileSz; } input_setSize(run, run->dynamicFileSz + len); @@ -495,7 +495,7 @@ static void mangle_CloneByte(run_t* run) { } static void mangle_Resize(run_t* run) { - size_t sz = util_rndGet(1, run->global->maxFileSz); + size_t sz = util_rndGet(1, run->global->mutate.maxFileSz); input_setSize(run, sz); } |