summaryrefslogtreecommitdiff
path: root/src/w32.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1998-05-12 21:33:44 +0000
committerRichard M. Stallman <rms@gnu.org>1998-05-12 21:33:44 +0000
commitbb1584c878678ba2949c4c65087404b12671a36c (patch)
treea6b3b104fb9ec01c90d7183fc9fc7a38cad55131 /src/w32.c
parent7d3159862ce14bf1f202982f7d31f1c76ba00e25 (diff)
downloademacs-bb1584c878678ba2949c4c65087404b12671a36c.tar.gz
(stat, get_long_basename): Fail if filename contains any
characters that are illegal in file names.
Diffstat (limited to 'src/w32.c')
-rw-r--r--src/w32.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/w32.c b/src/w32.c
index 42027ae2052..eaf0a6c3d18 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -464,6 +464,10 @@ get_long_basename (char * name, char * buf, int size)
HANDLE dir_handle;
int len = 0;
+ /* must be valid filename, no wild cards or other illegal characters */
+ if (strpbrk (name, "*?|<>\""))
+ return 0;
+
dir_handle = FindFirstFile (name, &find_data);
if (dir_handle != INVALID_HANDLE_VALUE)
{
@@ -1639,8 +1643,8 @@ stat (const char * path, struct stat * buf)
}
name = (char *) map_w32_filename (path, &path);
- /* must be valid filename, no wild cards */
- if (strchr (name, '*') || strchr (name, '?'))
+ /* must be valid filename, no wild cards or other illegal characters */
+ if (strpbrk (name, "*?|<>\""))
{
errno = ENOENT;
return -1;