about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2022-11-18 12:30:44 +0100
committerGitHub <noreply@github.com>2022-11-18 12:30:44 +0100
commitf667279b7014add9fa5c263f4776b38cbf12ea42 (patch)
tree771aaf881a9ff25b3af0a91c371ec9f971602617
parent26a5bd625ccbd8de4fbc9b5eea263d092bd405e5 (diff)
parentd7e788a3c0138637147621cc4d6ab8087e0af956 (diff)
downloadafl++-f667279b7014add9fa5c263f4776b38cbf12ea42.tar.gz
Merge pull request #1583 from kobrineli/fix-argv-fuzz
Fix argv-fuzz.
-rw-r--r--utils/argv_fuzzing/argv-fuzz-inl.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/utils/argv_fuzzing/argv-fuzz-inl.h b/utils/argv_fuzzing/argv-fuzz-inl.h
index c15c0271..e350dd4e 100644
--- a/utils/argv_fuzzing/argv-fuzz-inl.h
+++ b/utils/argv_fuzzing/argv-fuzz-inl.h
@@ -34,6 +34,7 @@
 #ifndef _HAVE_ARGV_FUZZ_INL
 #define _HAVE_ARGV_FUZZ_INL
 
+#include <stdlib.h>
 #include <unistd.h>
 
 #define AFL_INIT_ARGV()          \
@@ -63,7 +64,12 @@ static char **afl_init_argv(int *argc) {
   char *ptr = in_buf;
   int   rc = 0;
 
-  if (read(0, in_buf, MAX_CMDLINE_LEN - 2) < 0) {}
+  ssize_t num = read(0, in_buf, MAX_CMDLINE_LEN - 2);
+  if (num < 0) {
+      exit(1);
+  }
+  in_buf[num] = '\0';
+  in_buf[num + 1] = '\0';
 
   while (*ptr && rc < MAX_CMDLINE_PAR) {