• fix ${12345678901234567890} segfault (OOB access / integer overflow)
‣ not like oksh did, but using mksh’s built-in features • handle suggested __pure additions • revert cid 1004F7F096867C83CF0 ‣ always use our wcwidth code ‣ only use our strlcpy code if none found • fix a couple of gcc-snapshot and clang/scan-build warnings • mksh R49~rc1
This commit is contained in:
		
							
								
								
									
										8
									
								
								expr.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								expr.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| /*- | ||||
|  * Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
|  *		 2011, 2012, 2013 | ||||
|  *		 2011, 2012, 2013, 2014 | ||||
|  *	Thorsten Glaser <tg@mirbsd.org> | ||||
|  * | ||||
|  * Provided that these terms and disclaimer and all copyright notices | ||||
| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/expr.c,v 1.74 2014/01/05 19:11:44 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/expr.c,v 1.75 2014/01/05 21:57:26 tg Exp $"); | ||||
|  | ||||
| /* the order of these enums is constrained by the order of opinfo[] */ | ||||
| enum token { | ||||
| @@ -916,7 +916,6 @@ ksh_access(const char *fn, int mode) | ||||
| 	return (rv); | ||||
| } | ||||
|  | ||||
| #ifndef MKSH_mirbsd_wcwidth | ||||
| /* From: X11/xc/programs/xterm/wcwidth.c,v 1.7 2013/11/30 23:20:03 tg Exp $ */ | ||||
|  | ||||
| struct mb_ucsrange { | ||||
| @@ -925,7 +924,7 @@ struct mb_ucsrange { | ||||
| }; | ||||
|  | ||||
| static int mb_ucsbsearch(const struct mb_ucsrange arr[], size_t elems, | ||||
|     unsigned int val); | ||||
|     unsigned int val) MKSH_A_PURE; | ||||
|  | ||||
| /* | ||||
|  * Generated by MirOS: contrib/code/Snippets/eawparse,v 1.2 2013/11/30 13:45:17 tg Exp $ | ||||
| @@ -1190,4 +1189,3 @@ utf_wcwidth(unsigned int wc) | ||||
| 		return (2); | ||||
| 	return (1); | ||||
| } | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user