diff options
author | Richard M. Stallman <rms@gnu.org> | 1998-05-12 21:33:44 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1998-05-12 21:33:44 +0000 |
commit | bb1584c878678ba2949c4c65087404b12671a36c (patch) | |
tree | a6b3b104fb9ec01c90d7183fc9fc7a38cad55131 /src/w32.c | |
parent | 7d3159862ce14bf1f202982f7d31f1c76ba00e25 (diff) | |
download | emacs-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.c | 8 |
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; |