aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-12-26 13:15:05 +0100
committervan Hauser <vh@thc.org>2020-12-26 13:15:05 +0100
commit0b9ca807f2a5e1ef6f43a8cb95356ed21ba3a3e5 (patch)
treec7f89eacf98df180ae310bc0315a7182f5594025
parenta4fd4ea0f46529feb09577a13cc7c053fb22146f (diff)
downloadafl++-0b9ca807f2a5e1ef6f43a8cb95356ed21ba3a3e5.tar.gz
fix exec/s display
-rw-r--r--src/afl-common.c8
-rw-r--r--src/afl-fuzz-state.c2
-rw-r--r--src/afl-fuzz-stats.c35
3 files changed, 28 insertions, 17 deletions
diff --git a/src/afl-common.c b/src/afl-common.c
index 7914f83a..1928663d 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -630,6 +630,10 @@ u8 *stringify_float(u8 *buf, size_t len, double val) {
snprintf(buf, len, "%0.01f", val);
+ } else if (unlikely(isnan(val) || isinf(val))) {
+
+ strcpy(buf, "inf");
+
} else {
stringify_int(buf, len, (u64)val);
@@ -789,9 +793,9 @@ u8 *u_stringify_float(u8 *buf, double val) {
sprintf(buf, "%0.01f", val);
- } else if (unlikely(isnan(val) || isfinite(val))) {
+ } else if (unlikely(isnan(val) || isinf(val))) {
- strcpy(buf, "999.9");
+ strcpy(buf, "infinite");
} else {
diff --git a/src/afl-fuzz-state.c b/src/afl-fuzz-state.c
index 7053572b..34456c0d 100644
--- a/src/afl-fuzz-state.c
+++ b/src/afl-fuzz-state.c
@@ -100,7 +100,7 @@ void afl_state_init(afl_state_t *afl, uint32_t map_size) {
afl->cal_cycles_long = CAL_CYCLES_LONG;
afl->hang_tmout = EXEC_TIMEOUT;
afl->stats_update_freq = 1;
- afl->stats_avg_exec = -1;
+ afl->stats_avg_exec = 0;
afl->skip_deterministic = 1;
#ifndef NO_SPLICING
afl->use_splicing = 1;
diff --git a/src/afl-fuzz-stats.c b/src/afl-fuzz-stats.c
index 50e2ef15..cb0d3dcd 100644
--- a/src/afl-fuzz-stats.c
+++ b/src/afl-fuzz-stats.c
@@ -369,30 +369,37 @@ void show_stats(afl_state_t *afl) {
/* Calculate smoothed exec speed stats. */
- if (!afl->stats_last_execs) {
+ if (unlikely(!afl->stats_last_execs)) {
- if (unlikely(cur_ms == afl->start_time)) --afl->start_time;
+ if (likely(cur_ms != afl->start_time)) {
- afl->stats_avg_exec =
- ((double)afl->fsrv.total_execs) * 1000 / (cur_ms - afl->start_time);
+ afl->stats_avg_exec =
+ ((double)afl->fsrv.total_execs) * 1000 / (cur_ms - afl->start_time);
+
+ }
} else {
- double cur_avg = ((double)(afl->fsrv.total_execs - afl->stats_last_execs)) *
- 1000 / (cur_ms - afl->stats_last_ms);
+ if (likely(cur_ms != afl->stats_last_ms)) {
- /* If there is a dramatic (5x+) jump in speed, reset the indicator
- more quickly. */
+ double cur_avg =
+ ((double)(afl->fsrv.total_execs - afl->stats_last_execs)) * 1000 /
+ (cur_ms - afl->stats_last_ms);
- if (cur_avg * 5 < afl->stats_avg_exec ||
- cur_avg / 5 > afl->stats_avg_exec) {
+ /* If there is a dramatic (5x+) jump in speed, reset the indicator
+ more quickly. */
- afl->stats_avg_exec = cur_avg;
+ if (cur_avg * 5 < afl->stats_avg_exec ||
+ cur_avg / 5 > afl->stats_avg_exec) {
- }
+ afl->stats_avg_exec = cur_avg;
- afl->stats_avg_exec = afl->stats_avg_exec * (1.0 - 1.0 / AVG_SMOOTHING) +
- cur_avg * (1.0 / AVG_SMOOTHING);
+ }
+
+ afl->stats_avg_exec = afl->stats_avg_exec * (1.0 - 1.0 / AVG_SMOOTHING) +
+ cur_avg * (1.0 / AVG_SMOOTHING);
+
+ }
}