about summary refs log tree commit diff
path: root/src/afl-fuzz-init.c
diff options
context:
space:
mode:
authorDominik Maier <domenukk@gmail.com>2020-04-10 14:34:24 +0200
committerDominik Maier <domenukk@gmail.com>2020-04-10 14:34:24 +0200
commite51b4700e2cddea8d46375e1cf7c5937aa253972 (patch)
treeaa62f65fe0203ae3f427ef1758c8eb85f76a2a5c /src/afl-fuzz-init.c
parent0b9f7c4c895c9db6195deee3e48aa21e6bb7f5ab (diff)
parentac2f0c9896f507ddbd92cdcfbcc9615b6cf12b36 (diff)
downloadafl++-e51b4700e2cddea8d46375e1cf7c5937aa253972.tar.gz
Merge branch 'dev' of github.com:aflplusplus/aflplusplus into dev
Diffstat (limited to 'src/afl-fuzz-init.c')
-rw-r--r--src/afl-fuzz-init.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/afl-fuzz-init.c b/src/afl-fuzz-init.c
index efdde463..ce30e599 100644
--- a/src/afl-fuzz-init.c
+++ b/src/afl-fuzz-init.c
@@ -134,8 +134,17 @@ void bind_to_free_cpu(afl_state_t *afl) {
   for (i = 0; i < proccount; i++) {
 
 #if defined(__FreeBSD__)
-    if (procs[i].ki_oncpu < sizeof(cpu_used) && procs[i].ki_pctcpu > 60)
-      cpu_used[procs[i].ki_oncpu] = 1;
+    if (!strcmp(procs[i].ki_comm, "idle"))
+      continue;
+
+    // fix when ki_oncpu = -1
+    int oncpu;
+    oncpu = procs[i].ki_oncpu;
+    if (oncpu == -1)
+      oncpu = procs[i].ki_lastcpu;
+
+    if (oncpu != -1 && oncpu < sizeof(cpu_used) && procs[i].ki_pctcpu > 60)
+      cpu_used[oncpu] = 1;
 #elif defined(__DragonFly__)
     if (procs[i].kp_lwp.kl_cpuid < sizeof(cpu_used) &&
         procs[i].kp_lwp.kl_pctcpu > 10)