1
1

Add path_magic to work properly with #ftp:asdf files created by

malicious user
Этот коммит содержится в:
Pavel Machek 1998-10-05 18:32:53 +00:00
родитель b422d3771e
Коммит b99161ec69

Просмотреть файл

@ -60,12 +60,7 @@
extern int get_other_type (void); extern int get_other_type (void);
int vfs_timeout = 60; /* VFS timeout in seconds */ int vfs_timeout = 60; /* VFS timeout in seconds */
int vfs_flags = /* Flags */ int vfs_flags = 0; /* Flags */
#ifdef VFS_STANDALONE
0;
#else
FL_ALWAYS_MAGIC;
#endif
extern int cd_symlinks; /* Defined in main.c */ extern int cd_symlinks; /* Defined in main.c */
@ -141,11 +136,15 @@ vfs *vfs_type_from_op (char *path)
int path_magic( char *path ) int path_magic( char *path )
{ {
int res; int res;
struct stat buf;
res = !strncmp( path, "/#/", 3 ); if (vfs_flags & FL_ALWAYS_MAGIC)
if (res) return 1;
path[1] = '/';
return res || (vfs_flags & FL_ALWAYS_MAGIC); if (!stat(path, &buf))
return 0;
return 1;
} }
/* /*
@ -159,7 +158,7 @@ vfs *vfs_split (char *path, char **inpath, char **op)
char *slash; char *slash;
vfs *ret; vfs *ret;
if (!semi) if (!semi || !path_magic(path))
return NULL; return NULL;
slash = strchr (semi, '/'); slash = strchr (semi, '/');
*semi = 0; *semi = 0;
@ -190,7 +189,7 @@ vfs_rosplit (char *path)
char *slash; char *slash;
vfs *ret; vfs *ret;
if (!semi) if (!semi || !path_magic(path))
return NULL; return NULL;
slash = strchr (semi, '/'); slash = strchr (semi, '/');
*semi = 0; *semi = 0;