読み込む設定が書かれているとループが半永久的に続く問題点を修正。
20段以降は読み込まないようにした。
switch (buf[0])
{
- /* Process "%:<fname>" */
- case '%':
- /* Attempt to Process the given file */
- return process_pref_file(buf + 2);
-
/* Mega-Hack -- read external player's history file */
/* Process "H:<history>" */
case 'H':
/* Process "%:<file>" */
if (buf[0] == '%')
{
+ static int depth_count = 0;
+
+ /* Ignore if deeper than 20 level */
+ if (depth_count > 20) continue;
+
+ /* Count depth level */
+ depth_count++;
+
/* Process that file if allowed */
switch (preftype)
{
break;
}
+ /* Set back depth level */
+ depth_count--;
+
/* Continue */
continue;
}