Upgrade fnmatch.c from OpenBSD version 1.13 to 1.16. This is needed primarily to address CVE-2011-0419. This is a straight copy from upstream's version at http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/gen/fnmatch.c and incorporates the following changes: Revision 1.16: New fnmatch(3) implementation which is not recursive. Written and provided under BSD licence by William A. Rowe Jr. Originally released in Apache APR-1.4.5. Merged class matching code from r1.14 and PATH_MAX check from r1.15. ok miod millert Revision 1.15: Put a limit on recursion during matching, and reject input of size greater or equal PATH_MAX. Based on similar fix made in NetBSD. ok miod@ millert@ Revision 1.14: POSIX character class support for fnmatch(3) and glob(3). OK deraadt@ Version 1.14 introduced charclasses.h, which we copy unmodified from upstream version 1.1. http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/gen/charclass.h Bug: 3435120 Change-Id: I45133468f0c3d439fd10eb087a1c647799f9d25b
		
			
				
	
	
		
			30 lines
		
	
	
		
			652 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			652 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Public domain, 2008, Todd C. Miller <Todd.Miller@courtesan.com>
 | 
						|
 *
 | 
						|
 * $OpenBSD: charclass.h,v 1.1 2008/10/01 23:04:13 millert Exp $
 | 
						|
 */
 | 
						|
 | 
						|
/*
 | 
						|
 * POSIX character class support for fnmatch() and glob().
 | 
						|
 */
 | 
						|
static struct cclass {
 | 
						|
	const char *name;
 | 
						|
	int (*isctype)(int);
 | 
						|
} cclasses[] = {
 | 
						|
	{ "alnum",	isalnum },
 | 
						|
	{ "alpha",	isalpha },
 | 
						|
	{ "blank",	isblank },
 | 
						|
	{ "cntrl",	iscntrl },
 | 
						|
	{ "digit",	isdigit },
 | 
						|
	{ "graph",	isgraph },
 | 
						|
	{ "lower",	islower },
 | 
						|
	{ "print",	isprint },
 | 
						|
	{ "punct",	ispunct },
 | 
						|
	{ "space",	isspace },
 | 
						|
	{ "upper",	isupper },
 | 
						|
	{ "xdigit",	isxdigit },
 | 
						|
	{ NULL,		NULL }
 | 
						|
};
 | 
						|
 | 
						|
#define NCCLASSES	(sizeof(cclasses) / sizeof(cclasses[0]) - 1)
 |