Showing the changes to src/core/chuck_parse.cpp (1 of 3 files). Show all
Unified · Split
| @@ -36,8 +36,10 @@ · 35 unmodified lines | ||
| 36 | 36 | using namespace std; |
| 37 | 37 | |
| 38 | 38 | |
| 39 | +// max path len | |
| 40 | +static const t_CKUINT MAX_FILENAME_LEN = 2048; | |
| 39 | 41 | // global |
| 40 | −static char g_filename[1024] = ""; | |
| 42 | +static char g_filename[MAX_FILENAME_LEN+1] = ""; | |
| 41 | 43 | |
| 42 | 44 | // external |
| 43 | 45 | extern "C" { |
| @@ -178,6 +180,16 @@ t_CKBOOL chuck_parse( c_constr fname, FILE * fd, c_constr code ) · 134 unmodified lines | ||
| 178 | 180 | } |
| 179 | 181 | */ |
| 180 | 182 | |
| 183 | + // check length | 1.4.1.0 (ge) added | |
| 184 | + t_CKUINT len = strlen( fname ); | |
| 185 | + if( len > MAX_FILENAME_LEN ) | |
| 186 | + { | |
| 187 | + EM_error2( 0, "filename length (%d) exceeds max (%d) set by compiler...", | |
| 188 | + len, MAX_FILENAME_LEN ); | |
| 189 | + EM_error2( 0, "filename in question: '%s'", fname ); | |
| 190 | + EM_error2( 0, "compiler bailing out..." ); | |
| 191 | + return FALSE; | |
| 192 | + } | |
| 181 | 193 | // remember filename |
| 182 | 194 | strcpy( g_filename, fname ); |
| 183 | 195 | |