fuzz/x86emul: print out minimal input size
authorWei Liu <wei.liu2@citrix.com>
Wed, 25 Jan 2017 15:35:54 +0000 (15:35 +0000)
committerWei Liu <wei.liu2@citrix.com>
Mon, 6 Feb 2017 10:15:49 +0000 (10:15 +0000)
... so that users can know how big the initial input should be.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
tools/fuzz/x86_instruction_emulator/afl-x86-insn-emulator-fuzzer.c
tools/fuzz/x86_instruction_emulator/x86-insn-emulator-fuzzer.c

index 494c23ba2edc6cf8b21a2231b3d53a0746f54966..16edbd6bab9186d4d6df5fc31f04fe543aa0f581 100644 (file)
@@ -2,8 +2,10 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 extern int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t size);
+extern unsigned int fuzz_minimal_input_size(void);
 
 #define INPUT_SIZE  4096
 static uint8_t input[INPUT_SIZE];
@@ -21,6 +23,12 @@ int main(int argc, char **argv)
         exit(-1);
     }
 
+    if ( !strcmp(argv[1], "--min-input-size") )
+    {
+        printf("%u\n", fuzz_minimal_input_size());
+        exit(0);
+    }
+
     fp = fopen(argv[1], "rb");
     if ( fp == NULL )
     {
index 22d2d87e9c020f37eb2014951273fc924071c2e7..3b6d33aa25dad45ce640a5652ac814a74f1ae49a 100644 (file)
@@ -708,6 +708,11 @@ int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t size)
     return 0;
 }
 
+unsigned int fuzz_minimal_input_size(void)
+{
+    return DATA_OFFSET + 1;
+}
+
 /*
  * Local variables:
  * mode: C