mirror of
				https://gitlab.gnome.org/GNOME/libxml2.git
				synced 2025-10-30 10:45:36 +03:00 
			
		
		
		
	fuzz: Cap URL size
Cap URL size to avoid quadratic behavior when generating error messages.
This commit is contained in:
		
							
								
								
									
										11
									
								
								fuzz/fuzz.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								fuzz/fuzz.c
									
									
									
									
									
								
							| @@ -304,16 +304,21 @@ xmlFuzzReadEntities(void) { | |||||||
|  |  | ||||||
|     while (1) { |     while (1) { | ||||||
|         const char *url, *entity; |         const char *url, *entity; | ||||||
|         size_t entitySize; |         size_t urlSize, entitySize; | ||||||
|         xmlFuzzEntityInfo *entityInfo; |         xmlFuzzEntityInfo *entityInfo; | ||||||
|  |  | ||||||
|         url = xmlFuzzReadString(NULL); |         url = xmlFuzzReadString(&urlSize); | ||||||
|         if (url == NULL) break; |         if (url == NULL) break; | ||||||
|  |  | ||||||
|         entity = xmlFuzzReadString(&entitySize); |         entity = xmlFuzzReadString(&entitySize); | ||||||
|         if (entity == NULL) break; |         if (entity == NULL) break; | ||||||
|  |  | ||||||
|         if (xmlHashLookup(fuzzData.entities, (xmlChar *)url) == NULL) { |         /* | ||||||
|  |          * Cap URL size to avoid quadratic behavior when generating | ||||||
|  |          * error messages or looking up entities. | ||||||
|  |          */ | ||||||
|  |         if (urlSize < 50 && | ||||||
|  |             xmlHashLookup(fuzzData.entities, (xmlChar *)url) == NULL) { | ||||||
|             entityInfo = xmlMalloc(sizeof(xmlFuzzEntityInfo)); |             entityInfo = xmlMalloc(sizeof(xmlFuzzEntityInfo)); | ||||||
|             if (entityInfo == NULL) |             if (entityInfo == NULL) | ||||||
|                 break; |                 break; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user