From 71763d08b9bf005548b884843ad0e78ae16b3395 Mon Sep 17 00:00:00 2001 From: Laurynas Gadliauskas Date: Fri, 24 Feb 2023 14:22:08 +0200 Subject: [PATCH] fix: trim symlink root path prefix (#38) --- http/resource.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/http/resource.go b/http/resource.go index 304c9ad3..467188c9 100644 --- a/http/resource.go +++ b/http/resource.go @@ -85,13 +85,20 @@ var resourceGetHandler = withUser(func(w http.ResponseWriter, r *http.Request, d // remove symlinks that link outside base path if fi.IsSymlink { link := fi.Link - if !filepath.IsAbs(link) { + isAbs := filepath.IsAbs(link) + + if !isAbs { link = filepath.Join(d.user.FullPath(file.Path), link) } link = filepath.Clean(link) + if !strings.HasPrefix(link, d.server.Root) { return false } + + if isAbs { + fi.Link = strings.TrimPrefix(link, d.server.Root) + } } return true