aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/scanner.c
diff options
context:
space:
mode:
authorSteven G. Kargl <kargls@comcast.net>2005-08-19 11:05:03 +0200
committerTobias Schlüter <tobi@gcc.gnu.org>2005-08-19 11:05:03 +0200
commit200cfbe7b94cb12757dc3089401c20aa679a2c01 (patch)
tree76fe83ed6ce18e79b36af6aade13bf9037e75278 /gcc/fortran/scanner.c
parent4221d00ae06c662c15c8bf0d7ae64c94bf550604 (diff)
downloadgcc-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.c15
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--;