From e8da70e66ca15e91ba9a1ffd553f7657eb2e90ff Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 26 Nov 2018 14:07:55 -0800 Subject: Fix handling of filenames with hash characters in tree view Addressable::URI interprets the `#` in a URI as a URI fragment and does not escape it, but Rails has special helpers that treats these as bona-fide characters that need to be escaped. Closes https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23368 --- app/helpers/tree_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/helpers') diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb index 78a11616d4c..e2879bfdcf1 100644 --- a/app/helpers/tree_helper.rb +++ b/app/helpers/tree_helper.rb @@ -37,13 +37,13 @@ module TreeHelper # Using Rails `*_path` methods can be slow, especially when generating # many paths, as with a repository tree that has thousands of items. def fast_project_blob_path(project, blob_path) - Addressable::URI.escape( + ActionDispatch::Journey::Router::Utils.escape_path( File.join(relative_url_root, project.path_with_namespace, 'blob', blob_path) ) end def fast_project_tree_path(project, tree_path) - Addressable::URI.escape( + ActionDispatch::Journey::Router::Utils.escape_path( File.join(relative_url_root, project.path_with_namespace, 'tree', tree_path) ) end -- cgit v1.2.1