diff options
| author | Alexander Kabaev <kan@FreeBSD.org> | 2003-11-07 02:43:04 +0000 | 
|---|---|---|
| committer | Alexander Kabaev <kan@FreeBSD.org> | 2003-11-07 02:43:04 +0000 | 
| commit | ea875f6efe3bb8adfb0cd5c46481e92462efd788 (patch) | |
| tree | 980c917e2cc50183c4d566d9a0f9a1c818e6a6cd /contrib/gcc/scan-decls.c | |
| parent | 006ca56045367264ed55b8bf2cb0594565911208 (diff) | |
Notes
Diffstat (limited to 'contrib/gcc/scan-decls.c')
| -rw-r--r-- | contrib/gcc/scan-decls.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/gcc/scan-decls.c b/contrib/gcc/scan-decls.c index e56401d066f9..4f99319cc70e 100644 --- a/contrib/gcc/scan-decls.c +++ b/contrib/gcc/scan-decls.c @@ -32,7 +32,9 @@ int brace_nesting = 0;     indicate the (brace nesting levels of) left braces that were     prefixed by extern "C".  */  int extern_C_braces_length = 0; -char extern_C_braces[20]; +/* 20 is not enough anymore on Solaris 9.  */ +#define MAX_EXTERN_C_BRACES  200 +char extern_C_braces[MAX_EXTERN_C_BRACES];  #define in_extern_C_brace (extern_C_braces_length>0)  /* True if the function declaration currently being scanned is @@ -222,6 +224,12 @@ scan_decls (pfile, argc, argv)  		      brace_nesting++;  		      extern_C_braces[extern_C_braces_length++]  			= brace_nesting; +		      if (extern_C_braces_length >= MAX_EXTERN_C_BRACES) +			{ +			  fprintf (stderr, +			  	   "Internal error: out-of-bounds index\n"); +			  exit (FATAL_EXIT_CODE); +			}  		      goto new_statement;  		    }  		}  | 
