diff --git a/vfs/ChangeLog b/vfs/ChangeLog index c8e8d91b2..a0d1d9248 100644 --- a/vfs/ChangeLog +++ b/vfs/ChangeLog @@ -1,5 +1,7 @@ 2003-10-16 Pavel Roskin + * direntry.c (vfs_s_find_entry_tree): Canonicalize path. + * direntry.c (vfs_s_resolve_symlink): Don't use buffers of fixed size. This fixes a security hole. Always start from the root. Remove broken code for making symlinks relative. diff --git a/vfs/direntry.c b/vfs/direntry.c index 03d939a8c..4da3b3804 100644 --- a/vfs/direntry.c +++ b/vfs/direntry.c @@ -263,6 +263,8 @@ vfs_s_find_entry_tree (struct vfs_class *me, struct vfs_s_inode *root, if (strlen(path) >= MC_MAXPATHLEN) return NULL; + canonicalize_pathname (path); + while (root) { int t;