summaryrefslogtreecommitdiff
path: root/src/pch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pch.c')
-rw-r--r--src/pch.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/pch.c b/src/pch.c
index 41c15b6..1fd3848 100644
--- a/src/pch.c
+++ b/src/pch.c
@@ -379,11 +379,18 @@ skip_hex_digits (char const *str)
static bool
name_is_valid (char const *name)
{
- const char *n = name;
+ static char const *bad[2];
+ char const *n;
+
+ if (bad[0] && ! strcmp (bad[0], name))
+ return false;
+ if (bad[1] && ! strcmp (bad[1], name))
+ return false;
if (IS_ABSOLUTE_FILE_NAME (name))
{
say ("Ignoring potentially dangerous file name %s\n", quotearg (name));
+ bad[!! bad[0]] = name;
return false;
}
for (n = name; *n; )
@@ -391,6 +398,7 @@ name_is_valid (char const *name)
if (*n == '.' && *++n == '.' && ( ! *++n || ISSLASH (*n)))
{
say ("Ignoring potentially dangerous file name %s\n", quotearg (name));
+ bad[!! bad[0]] = name;
return false;
}
while (*n && ! ISSLASH (*n))