diff options
author | Steven G. Kargl <kargls@comcast.net> | 2005-08-19 11:05:03 +0200 |
---|---|---|
committer | Tobias Schlüter <tobi@gcc.gnu.org> | 2005-08-19 11:05:03 +0200 |
commit | 200cfbe7b94cb12757dc3089401c20aa679a2c01 (patch) | |
tree | 76fe83ed6ce18e79b36af6aade13bf9037e75278 /gcc/fortran/scanner.c | |
parent | 4221d00ae06c662c15c8bf0d7ae64c94bf550604 (diff) | |
download | gcc-200cfbe7b94cb12757dc3089401c20aa679a2c01.zip gcc-200cfbe7b94cb12757dc3089401c20aa679a2c01.tar.gz gcc-200cfbe7b94cb12757dc3089401c20aa679a2c01.tar.bz2 |
re PR fortran/23065 (MAXPATHLEN usage in fortran/{scanner,module}.c)
2005-08-19 Steven G. Kargl <kargls@comcast.net>
PR fortran/23065
* gfortran.h: Remove PATH_MAX definition.
* module.c (write_module, gfc_dump_module): Use alloca to allocate
buffers.
* scanner.s (gfc_release_include_path, form_from_filename): Ditto.
From-SVN: r103271
Diffstat (limited to 'gcc/fortran/scanner.c')
-rw-r--r-- | gcc/fortran/scanner.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index d71d065..68af79d 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -164,7 +164,7 @@ gfc_release_include_path (void) FILE * gfc_open_included_file (const char *name) { - char fullname[PATH_MAX]; + char *fullname; gfc_directorylist *p; FILE *f; @@ -174,9 +174,7 @@ gfc_open_included_file (const char *name) for (p = include_dirs; p; p = p->next) { - if (strlen (p->path) + strlen (name) + 1 > PATH_MAX) - continue; - + fullname = (char *) alloca(strlen (p->path) + strlen (name) + 1); strcpy (fullname, p->path); strcat (fullname, name); @@ -1133,15 +1131,12 @@ form_from_filename (const char *filename) const char *fileext; int i; - /* Find end of file name. */ + /* Find end of file name. Note, filename is either a NULL pointer or + a NUL terminated string. */ i = 0; - while ((i < PATH_MAX) && (filename[i] != '\0')) + while (filename[i] != '\0') i++; - /* Improperly terminated or too-long filename. */ - if (i == PATH_MAX) - return FORM_UNKNOWN; - /* Find last period. */ while (i >= 0 && (filename[i] != '.')) i--; |