Commit 3c55599b by Jerry DeLisle

re PR libfortran/34291 (Segfault in io/list_read.c handling of end conditions)

2007-11-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/34291
	* io/list_read.c (read_character): When reading an unquoted string,
	return if special characters that could signify the end of the namelist
	read are encountered.

From-SVN: r130548
parent a6968b8b
2007-11-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/34291
* io/list_read.c (read_character): When reading an unquoted string,
return if special characters that could signify the end of the namelist
read are encountered.
2007-11-29 Steven G. Kargl <kargls@comcast.net>
PR libfortran/33583
......
......@@ -896,7 +896,8 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))
if (dtp->u.p.namelist_mode)
{
if (dtp->u.p.current_unit->flags.delim == DELIM_APOSTROPHE
|| dtp->u.p.current_unit->flags.delim == DELIM_QUOTE)
|| dtp->u.p.current_unit->flags.delim == DELIM_QUOTE
|| c == '&' || c == '$' || c == '/')
{
unget_char (dtp, c);
return;
......@@ -923,8 +924,9 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))
goto get_string;
}
}
l_push_char (dtp, c);
if (c == '=' || c == '(')
{
dtp->u.p.item_count = 0;
......@@ -936,6 +938,7 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))
/* The string is too long to be a valid object name so assume that it
is a string to be read in as a value. */
dtp->u.p.item_count = 0;
dtp->u.p.line_buffer_enabled = 1;
goto get_string;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment