|  | @@ -224,6 +224,18 @@ extern INLINE double U64_TO_DBL(uint64_t x) {
 | 
	
		
			
				|  |  |  #define strncasecmp _strnicmp
 | 
	
		
			
				|  |  |  #define strcasecmp _stricmp
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if defined __APPLE__
 | 
	
		
			
				|  |  | +/* On OSX 10.9 and later, the overlap-checking code for strlcat would
 | 
	
		
			
				|  |  | + * appear to have a severe bug that can sometimes cause aborts in Tor.
 | 
	
		
			
				|  |  | + * Instead, use the non-checking variants.  This is sad.
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * See https://trac.torproject.org/projects/tor/ticket/15205
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +#undef strlcat
 | 
	
		
			
				|  |  | +#undef strlcpy
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #ifndef HAVE_STRLCAT
 | 
	
		
			
				|  |  |  size_t strlcat(char *dst, const char *src, size_t siz) ATTR_NONNULL((1,2));
 | 
	
		
			
				|  |  |  #endif
 |