1*90e502c7SAndroid Build Coastguard Worker #include <stdint.h>
2*90e502c7SAndroid Build Coastguard Worker #include <stddef.h>
3*90e502c7SAndroid Build Coastguard Worker #include <stdlib.h>
4*90e502c7SAndroid Build Coastguard Worker #include <string.h>
5*90e502c7SAndroid Build Coastguard Worker
6*90e502c7SAndroid Build Coastguard Worker #ifdef FUZZ_MSAN
7*90e502c7SAndroid Build Coastguard Worker #include <stdio.h>
fuzz_testmem_msan(void * data,size_t size)8*90e502c7SAndroid Build Coastguard Worker static void fuzz_testmem_msan(void *data, size_t size)
9*90e502c7SAndroid Build Coastguard Worker {
10*90e502c7SAndroid Build Coastguard Worker /* This is a trick to force MemorySanitizer to evaluate the data at hand */
11*90e502c7SAndroid Build Coastguard Worker FILE *fp = fopen("/dev/null", "wb");
12*90e502c7SAndroid Build Coastguard Worker fwrite(data, size, 1, fp);
13*90e502c7SAndroid Build Coastguard Worker fclose(fp);
14*90e502c7SAndroid Build Coastguard Worker }
15*90e502c7SAndroid Build Coastguard Worker #endif
16*90e502c7SAndroid Build Coastguard Worker
fuzz_testmem(void * data,size_t size)17*90e502c7SAndroid Build Coastguard Worker void fuzz_testmem(void *data, size_t size)
18*90e502c7SAndroid Build Coastguard Worker {
19*90e502c7SAndroid Build Coastguard Worker #ifdef FUZZ_MSAN
20*90e502c7SAndroid Build Coastguard Worker fuzz_testmem_msan(data, size);
21*90e502c7SAndroid Build Coastguard Worker #endif
22*90e502c7SAndroid Build Coastguard Worker uint8_t *copy = malloc(size);
23*90e502c7SAndroid Build Coastguard Worker memcpy(copy, data, size);
24*90e502c7SAndroid Build Coastguard Worker free(copy);
25*90e502c7SAndroid Build Coastguard Worker }
26