about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2024-02-29 09:14:38 +0100
committerGitHub <noreply@github.com>2024-02-29 09:14:38 +0100
commita607adb7a3c6fcbc8d714180257f29476c3f5a29 (patch)
tree6c0e56aea6657d79c18d3c8fb73dc056459386a0
parent036a79268b48a0e3e061d5e3387711f69bed8d56 (diff)
parent335b2d4542d951b6742ca02646ab1c254f64f8f2 (diff)
downloadafl++-a607adb7a3c6fcbc8d714180257f29476c3f5a29.tar.gz
Merge pull request #2019 from zidel/fork_server_fix
Load autodictionary when using new forkserver
-rw-r--r--src/afl-forkserver.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index 1381236c..d9207d45 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -1152,12 +1152,11 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
 
         }
 
-        while (dict_size != 0) {
+        while (offset < dict_size) {
 
-          rlen = read(fsrv->fsrv_st_fd, dict + offset, dict_size);
+          rlen = read(fsrv->fsrv_st_fd, dict + offset, dict_size - offset);
           if (rlen > 0) {
 
-            dict_size -= rlen;
             offset += rlen;
 
           } else {
@@ -1165,7 +1164,7 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
             FATAL(
                 "Reading autodictionary fail at position %u with %u bytes "
                 "left.",
-                offset, dict_size);
+                offset, dict_size - offset);
 
           }