Skip to content
Snippets Groups Projects
Commit 08fc7565 authored by Bram Moolenaar's avatar Bram Moolenaar
Browse files

updated for version 7.3.373

Problem:    A tags file with an extremely long name may cause an infinite loop.
Solution:   When encountering a long name switch to linear search.
parent 96a89645
No related merge requests found
......@@ -1854,7 +1854,7 @@ line_read_in:
if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
{
/* binary search won't work for ignoring case, use linear
/* Binary search won't work for ignoring case, use linear
* search. */
linear = TRUE;
state = TS_LINEAR;
......@@ -1922,6 +1922,19 @@ line_read_in:
MSG(_("Ignoring long line in tags file"));
verbose_leave();
}
#ifdef FEAT_TAG_BINS
if (state != TS_LINEAR)
{
/* Avoid getting stuck. */
linear = TRUE;
state = TS_LINEAR;
# ifdef HAVE_FSEEKO
fseeko(fp, search_info.low_offset, SEEK_SET);
# else
fseek(fp, (long)search_info.low_offset, SEEK_SET);
# endif
}
#endif
continue;
}
......
......@@ -714,6 +714,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
373,
/**/
372,
/**/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment