summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Swiecki <robert@swiecki.net>2023-03-30 13:19:05 +0200
committerRobert Swiecki <robert@swiecki.net>2023-03-30 13:19:05 +0200
commite77f7604a0abc6b85c399b6efd8b55be26ccd9d6 (patch)
tree9a6d2177279c0f547d42dfa423291448b05b7ada
parentb4d9c1cbf7b8423b8b976173c46fa8f660d4d7a6 (diff)
downloadhonggfuzz-e77f7604a0abc6b85c399b6efd8b55be26ccd9d6.tar.gz
mangle: let mangle_ConstFeedbackDict run with 50% chance
-rw-r--r--libhfuzz/memorycmp.c4
-rw-r--r--mangle.c20
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);
}
diff --git a/mangle.c b/mangle.c
index 84859b87..ecb628d4 100644
--- a/mangle.c
+++ b/mangle.c
@@ -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();