generated from sethub/template
[libxml2]Add libxml2 library
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
/*
|
||||
* fuzz.h: Common functions and macros for fuzzing.
|
||||
*
|
||||
* See Copyright for the status of this software.
|
||||
*/
|
||||
|
||||
#ifndef __XML_FUZZERCOMMON_H__
|
||||
#define __XML_FUZZERCOMMON_H__
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <libxml/parser.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if __GNUC__ * 100 + __GNUC_MINOR__ >= 207 || defined(__clang__)
|
||||
#define ATTRIBUTE_UNUSED __attribute__((unused))
|
||||
#else
|
||||
#define ATTRIBUTE_UNUSED
|
||||
#endif
|
||||
|
||||
#if defined(LIBXML_HTML_ENABLED)
|
||||
#define HAVE_HTML_FUZZER
|
||||
#endif
|
||||
#if 1
|
||||
#define HAVE_LINT_FUZZER
|
||||
#endif
|
||||
#if defined(LIBXML_READER_ENABLED)
|
||||
#define HAVE_READER_FUZZER
|
||||
#endif
|
||||
#if defined(LIBXML_REGEXP_ENABLED)
|
||||
#define HAVE_REGEXP_FUZZER
|
||||
#endif
|
||||
#if defined(LIBXML_SCHEMAS_ENABLED)
|
||||
#define HAVE_SCHEMA_FUZZER
|
||||
#endif
|
||||
#if 1
|
||||
#define HAVE_URI_FUZZER
|
||||
#endif
|
||||
#if defined(LIBXML_VALID_ENABLED)
|
||||
#define HAVE_VALID_FUZZER
|
||||
#endif
|
||||
#if defined(LIBXML_XINCLUDE_ENABLED)
|
||||
#define HAVE_XINCLUDE_FUZZER
|
||||
#endif
|
||||
#if 1
|
||||
#define HAVE_XML_FUZZER
|
||||
#endif
|
||||
#if defined(LIBXML_XPTR_ENABLED)
|
||||
#define HAVE_XPATH_FUZZER
|
||||
#endif
|
||||
|
||||
#define XML_FUZZ_PROB_ONE (1u << 16)
|
||||
|
||||
typedef size_t
|
||||
(*xmlFuzzMutator)(char *data, size_t size, size_t maxSize);
|
||||
|
||||
typedef struct {
|
||||
unsigned size;
|
||||
unsigned mutateProb;
|
||||
} xmlFuzzChunkDesc;
|
||||
|
||||
int
|
||||
LLVMFuzzerInitialize(int *argc, char ***argv);
|
||||
|
||||
int
|
||||
LLVMFuzzerTestOneInput(const char *data, size_t size);
|
||||
|
||||
size_t
|
||||
LLVMFuzzerMutate(char *data, size_t size, size_t maxSize);
|
||||
|
||||
size_t
|
||||
LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
|
||||
unsigned seed);
|
||||
|
||||
void
|
||||
xmlFuzzErrorFunc(void *ctx, const char *msg, ...);
|
||||
|
||||
void
|
||||
xmlFuzzSErrorFunc(void *ctx, const xmlError *error);
|
||||
|
||||
void
|
||||
xmlFuzzMemSetup(void);
|
||||
|
||||
void
|
||||
xmlFuzzInjectFailure(size_t failurePos);
|
||||
|
||||
int
|
||||
xmlFuzzMallocFailed(void);
|
||||
|
||||
void
|
||||
xmlFuzzResetFailure(void);
|
||||
|
||||
void
|
||||
xmlFuzzCheckFailureReport(const char *func, int oomReport, int ioReport);
|
||||
|
||||
void
|
||||
xmlFuzzDataInit(const char *data, size_t size);
|
||||
|
||||
void
|
||||
xmlFuzzDataCleanup(void);
|
||||
|
||||
void
|
||||
xmlFuzzWriteInt(FILE *out, size_t v, int size);
|
||||
|
||||
size_t
|
||||
xmlFuzzReadInt(int size);
|
||||
|
||||
size_t
|
||||
xmlFuzzBytesRemaining(void);
|
||||
|
||||
const char *
|
||||
xmlFuzzReadRemaining(size_t *size);
|
||||
|
||||
void
|
||||
xmlFuzzWriteString(FILE *out, const char *str);
|
||||
|
||||
const char *
|
||||
xmlFuzzReadString(size_t *size);
|
||||
|
||||
void
|
||||
xmlFuzzReadEntities(void);
|
||||
|
||||
const char *
|
||||
xmlFuzzMainUrl(void);
|
||||
|
||||
const char *
|
||||
xmlFuzzMainEntity(size_t *size);
|
||||
|
||||
const char *
|
||||
xmlFuzzSecondaryUrl(void);
|
||||
|
||||
const char *
|
||||
xmlFuzzSecondaryEntity(size_t *size);
|
||||
|
||||
xmlParserErrors
|
||||
xmlFuzzResourceLoader(void *data, const char *URL, const char *ID,
|
||||
xmlResourceType type, xmlParserInputFlags flags,
|
||||
xmlParserInputPtr *out);
|
||||
|
||||
char *
|
||||
xmlSlurpFile(const char *path, size_t *size);
|
||||
|
||||
int
|
||||
xmlFuzzOutputWrite(void *ctxt, const char *buffer, int len);
|
||||
|
||||
int
|
||||
xmlFuzzOutputClose(void *ctxt);
|
||||
|
||||
size_t
|
||||
xmlFuzzMutateChunks(const xmlFuzzChunkDesc *chunks,
|
||||
char *data, size_t size, size_t maxSize, unsigned seed,
|
||||
xmlFuzzMutator mutator);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __XML_FUZZERCOMMON_H__ */
|
||||
|
||||
Reference in New Issue
Block a user