| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -504,7 +504,7 @@ STBIDEF int   stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const ch | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <string.h> | 
					 | 
					 | 
					 | 
					#include <string.h> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <limits.h> | 
					 | 
					 | 
					 | 
					#include <limits.h> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) | 
					 | 
					 | 
					 | 
					#if !defined(STBI_NO_LINEAR) && !defined(STBI_NO_HDR) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <math.h>  // ldexp | 
					 | 
					 | 
					 | 
					#include <math.h>  // ldexp | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#endif | 
					 | 
					 | 
					 | 
					#endif | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -894,11 +894,13 @@ static int stbi__mad3sizes_valid(int a, int b, int c, int add) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow
 | 
					 | 
					 | 
					 | 
					// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#if !defined(STBI_NO_LINEAR) && !defined(STBI_NO_HDR) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) | 
					 | 
					 | 
					 | 
					static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && | 
					 | 
					 | 
					 | 
					   return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); | 
					 | 
					 | 
					 | 
					      stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#endif | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// mallocs with size overflow checking
 | 
					 | 
					 | 
					 | 
					// mallocs with size overflow checking
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static void *stbi__malloc_mad2(int a, int b, int add) | 
					 | 
					 | 
					 | 
					static void *stbi__malloc_mad2(int a, int b, int add) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -913,11 +915,13 @@ static void *stbi__malloc_mad3(int a, int b, int c, int add) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   return stbi__malloc(a*b*c + add); | 
					 | 
					 | 
					 | 
					   return stbi__malloc(a*b*c + add); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#if !defined(STBI_NO_LINEAR) && !defined(STBI_NO_HDR) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) | 
					 | 
					 | 
					 | 
					static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; | 
					 | 
					 | 
					 | 
					   if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					   return stbi__malloc(a*b*c*d + add); | 
					 | 
					 | 
					 | 
					   return stbi__malloc(a*b*c*d + add); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#endif | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// stbi__err - error
 | 
					 | 
					 | 
					 | 
					// stbi__err - error
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// stbi__errpf - error returning pointer to float
 | 
					 | 
					 | 
					 | 
					// stbi__errpf - error returning pointer to float
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |