mirror of
				https://gitlab.gnome.org/GNOME/libxml2.git
				synced 2025-10-31 21:50:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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 defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
 | |
|   #define HAVE_HTML_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_OUTPUT_ENABLED) && \
 | |
|     defined(LIBXML_READER_ENABLED) && \
 | |
|     defined(LIBXML_XINCLUDE_ENABLED)
 | |
|   #define HAVE_XML_FUZZER
 | |
| #endif
 | |
| #if defined(LIBXML_XPATH_ENABLED)
 | |
|   #define HAVE_XPATH_FUZZER
 | |
| #endif
 | |
| 
 | |
| int
 | |
| LLVMFuzzerInitialize(int *argc, char ***argv);
 | |
| 
 | |
| int
 | |
| LLVMFuzzerTestOneInput(const char *data, size_t size);
 | |
| 
 | |
| void
 | |
| xmlFuzzErrorFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg ATTRIBUTE_UNUSED,
 | |
|                  ...);
 | |
| 
 | |
| void
 | |
| xmlFuzzDataInit(const char *data, size_t size);
 | |
| 
 | |
| void
 | |
| xmlFuzzDataCleanup(void);
 | |
| 
 | |
| int
 | |
| xmlFuzzReadInt(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);
 | |
| 
 | |
| xmlParserInputPtr
 | |
| xmlFuzzEntityLoader(const char *URL, const char *ID, xmlParserCtxtPtr ctxt);
 | |
| 
 | |
| size_t
 | |
| xmlFuzzExtractStrings(const char *data, size_t size, char **strings,
 | |
|                       size_t numStrings);
 | |
| 
 | |
| char *
 | |
| xmlSlurpFile(const char *path, size_t *size);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* __XML_FUZZERCOMMON_H__ */
 | |
| 
 |