mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
fuzz/x86_emulate: Move definitions into a header
Move fuzz-emul.c function prototypes into a header. Also share the definition of the input size (rather than hard-coding it in fuzz-emul.c). Signed-off-by: George Dunlap <george.dunlap@citrix.com>
This commit is contained in:
1 parent
2b1cde7783
commit
c4e365a0eb
3 files changed
+16
-7
No files matched your search
@@ -4,12 +4,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <getopt.h>
|
||||
#include "fuzz-emul.h"
|
||||
|
||||
extern int LLVMFuzzerInitialize(int *argc, char ***argv);
|
||||
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];
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <xen/xen.h>
|
||||
|
||||
#include "x86-emulate.h"
|
||||
#include "fuzz-emul.h"
|
||||
|
||||
#define MSR_INDEX_MAX 16
|
||||
|
||||
@@ -29,7 +30,7 @@ struct fuzz_corpus
|
||||
struct cpu_user_regs regs;
|
||||
struct segment_register segments[SEG_NUM];
|
||||
unsigned long options;
|
||||
unsigned char data[4096];
|
||||
unsigned char data[INPUT_SIZE];
|
||||
} input;
|
||||
#define DATA_OFFSET offsetof(struct fuzz_corpus, data)
|
||||
|
||||
@@ -827,7 +828,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t size)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( size > sizeof(input) )
|
||||
if ( size > INPUT_SIZE )
|
||||
{
|
||||
printf("Input too large\n");
|
||||
return 1;
|
||||
@@ -858,6 +859,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t size)
|
||||
|
||||
unsigned int fuzz_minimal_input_size(void)
|
||||
{
|
||||
BUILD_BUG_ON(DATA_OFFSET > INPUT_SIZE);
|
||||
|
||||
return DATA_OFFSET + 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#ifndef FUZZ_EMUL_H
|
||||
# define FUZZ_EMUL_H
|
||||
|
||||
extern int LLVMFuzzerInitialize(int *argc, char ***argv);
|
||||
extern int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t size);
|
||||
extern unsigned int fuzz_minimal_input_size(void);
|
||||
|
||||
#define INPUT_SIZE 4096
|
||||
|
||||
#endif /* ifdef FUZZ_EMUL_H */
|
||||