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 | using namespace std; | 36 | using namespace std; |
| 37 | 37 | ||
| 38 | 38 | ||
| 39 | // max path len | ||
| 40 | static const t_CKUINT MAX_FILENAME_LEN = 2048; | ||
| 39 | // global | 41 | // global |
| 40 | static char g_filename[1024] = ""; | 42 | static char g_filename[MAX_FILENAME_LEN+1] = ""; |
| 41 | 43 | ||
| 42 | // external | 44 | // external |
| 43 | extern "C" { | 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 | // remember filename | 193 | // remember filename |
| 182 | strcpy( g_filename, fname ); | 194 | strcpy( g_filename, fname ); |
| 183 | 195 | ||