fix: trim symlink root path prefix (#38)
parent
e22451dfbf
commit
71763d08b9
|
@ -85,13 +85,20 @@ var resourceGetHandler = withUser(func(w http.ResponseWriter, r *http.Request, d
|
||||||
// remove symlinks that link outside base path
|
// remove symlinks that link outside base path
|
||||||
if fi.IsSymlink {
|
if fi.IsSymlink {
|
||||||
link := fi.Link
|
link := fi.Link
|
||||||
if !filepath.IsAbs(link) {
|
isAbs := filepath.IsAbs(link)
|
||||||
|
|
||||||
|
if !isAbs {
|
||||||
link = filepath.Join(d.user.FullPath(file.Path), link)
|
link = filepath.Join(d.user.FullPath(file.Path), link)
|
||||||
}
|
}
|
||||||
link = filepath.Clean(link)
|
link = filepath.Clean(link)
|
||||||
|
|
||||||
if !strings.HasPrefix(link, d.server.Root) {
|
if !strings.HasPrefix(link, d.server.Root) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if isAbs {
|
||||||
|
fi.Link = strings.TrimPrefix(link, d.server.Root)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
Loading…
Reference in New Issue