|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH fuzzer v1] Added the --ignore-sigill option for AFL fuzzing
As of now, the x86_instruction_emulator will execute opcodes
belonging to CPU extensions that the host may not have.
Specifying --ignore-sigill when running afl-harness will ignore
all SIG_ILL including those generated by the above issue.
---
.../fuzz/x86_instruction_emulator/afl-harness.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/tools/fuzz/x86_instruction_emulator/afl-harness.c
b/tools/fuzz/x86_instruction_emulator/afl-harness.c
--- a/tools/fuzz/x86_instruction_emulator/afl-harness.c
+++ b/tools/fuzz/x86_instruction_emulator/afl-harness.c
@@ -1,4 +1,5 @@
#include <assert.h>
+#include <signal.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
@@ -8,11 +9,17 @@
static uint8_t input[INPUT_SIZE];
+void SIGILL_handler(int signo) {
+ printf("Exiting due to executing an unsupported opcdode.\n");
+ exit(0);
+}
+
int main(int argc, char **argv)
{
size_t size;
FILE *fp = NULL;
int max, count;
+ struct sigaction sa, osa;
setbuf(stdin, NULL);
setbuf(stdout, NULL);
@@ -20,9 +27,11 @@ int main(int argc, char **argv)
while ( 1 )
{
enum {
+ IGNORE_SIGILL,
OPT_MIN_SIZE,
};
static const struct option lopts[] = {
+ { "ignore-sigill", no_argument, NULL, IGNORE_SIGILL },
{ "min-input-size", no_argument, NULL, OPT_MIN_SIZE },
{ 0, 0, 0, 0 }
};
@@ -33,13 +42,19 @@ int main(int argc, char **argv)
switch ( c )
{
+ case IGNORE_SIGILL:
+ sa.sa_flags = 0;
+ sa.sa_handler = SIGILL_handler;
+ sigaction(SIGILL, &sa, &osa);
+ break;
+
case OPT_MIN_SIZE:
printf("%u\n", fuzz_minimal_input_size());
exit(0);
break;
case '?':
- printf("Usage: %s $FILE [$FILE...] | [--min-input-size]\n",
argv[0]);
+ printf("Usage: %s $FILE [$FILE...] [--ignore-sigill] |
[--min-input-size]\n", argv[0]);
exit(-1);
break;
--
2.17.1
Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrer: Christian Schlaeger, Ralf Herbrich
Ust-ID: DE 289 237 879
Eingetragen am Amtsgericht Charlottenburg HRB 149173 B
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |