1 #ifdef __cplusplus
2 extern "C" {
3 #endif
4
5 #include <inttypes.h>
6 #include <libxml.h>
7 #include <libxml/relaxng.h>
8 #include <libxml/xmlerror.h>
9 #include <stdlib.h>
10
11 #include <libhfuzz/libhfuzz.h>
12
13 FILE* null_file = NULL;
14
LLVMFuzzerInitialize(int * argc,char *** argv)15 int LLVMFuzzerInitialize(int* argc, char*** argv)
16 {
17 null_file = fopen("/dev/null", "w");
18 return 0;
19 }
20
LLVMFuzzerTestOneInput(const uint8_t * buf,size_t len)21 int LLVMFuzzerTestOneInput(const uint8_t* buf, size_t len)
22 {
23 xmlDocPtr p = xmlReadMemory((const char*)buf, len, "http://www.google.com", "UTF-8", XML_PARSE_RECOVER | XML_PARSE_NONET);
24 if (!p) {
25 return 0;
26 }
27 xmlDocFormatDump(null_file, p, 1);
28 xmlFreeDoc(p);
29 return 0;
30 }
31
32 #ifdef __cplusplus
33 }
34 #endif
35