diff options
author | Robert Swiecki <robert@swiecki.net> | 2023-03-30 13:19:05 +0200 |
---|---|---|
committer | Robert Swiecki <robert@swiecki.net> | 2023-03-30 13:19:05 +0200 |
commit | e77f7604a0abc6b85c399b6efd8b55be26ccd9d6 (patch) | |
tree | 9a6d2177279c0f547d42dfa423291448b05b7ada | |
parent | b4d9c1cbf7b8423b8b976173c46fa8f660d4d7a6 (diff) | |
download | honggfuzz-e77f7604a0abc6b85c399b6efd8b55be26ccd9d6.tar.gz |
mangle: let mangle_ConstFeedbackDict run with 50% chance
-rw-r--r-- | libhfuzz/memorycmp.c | 4 | ||||
-rw-r--r-- | mangle.c | 20 |
2 files changed, 12 insertions, 12 deletions
diff --git a/libhfuzz/memorycmp.c b/libhfuzz/memorycmp.c index 0fd12932..a71ee50b 100644 --- a/libhfuzz/memorycmp.c +++ b/libhfuzz/memorycmp.c @@ -196,7 +196,7 @@ static inline char* HF_strcpy(char* dest, const char* src, uintptr_t addr) { return __builtin_memcpy(dest, src, len + 1); } -static inline char* HF_strcat(char *dest, const char *src, uintptr_t addr) { +static inline char* HF_strcat(char* dest, const char* src, uintptr_t addr) { size_t len = __builtin_strlen(dest); return HF_strcpy(dest + len, src, addr); } @@ -224,7 +224,7 @@ static inline size_t HF_strlcpy(char* dest, const char* src, size_t sz, uintptr_ return len; } -static inline size_t HF_strlcat(char *dest, const char *src, size_t sz, uintptr_t addr) { +static inline size_t HF_strlcat(char* dest, const char* src, size_t sz, uintptr_t addr) { size_t len = __builtin_strlen(dest); return HF_strlcpy(dest + len, src, sz, addr); } @@ -890,17 +890,17 @@ void mangle_mangleContent(run_t* run, int speed_factor) { } } + /* + * mangle_ConstFeedbackDict() is quite powerful if the dynamic feedback dictionary + * exists. If so, give it a 50% chance of being used. + */ + if (run->global->feedback.cmpFeedback && (util_rnd64() & 0x1)) { + mangle_ConstFeedbackDict(run, /* printable= */ run->global->cfg.only_printable); + } + for (uint64_t x = 0; x < changesCnt; x++) { - if (run->global->feedback.cmpFeedback && (util_rnd64() & 0x1)) { - /* - * mangle_ConstFeedbackDict() is quite powerful if the dynamic feedback dictionary - * exists. If so, give it 50% chance of being used among all mangling functions. - */ - mangle_ConstFeedbackDict(run, /* printable= */ run->global->cfg.only_printable); - } else { - uint64_t choice = util_rndGet(0, ARRAYSIZE(mangleFuncs) - 1); - mangleFuncs[choice](run, /* printable= */ run->global->cfg.only_printable); - } + uint64_t choice = util_rndGet(0, ARRAYSIZE(mangleFuncs) - 1); + mangleFuncs[choice](run, /* printable= */ run->global->cfg.only_printable); } wmb(); |