You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gitea/services
Yarden Shoham 43d1183f67
escape filename when assemble URL (#22850) (#22871)
Backport #22850

Fixes: #22843 

### Cause:

affdd40296/services/repository/files/content.go (L161)

Previously, we did not escape the **"%"** that might be in "treePath"
when call "url.parse()".


![image](https://user-images.githubusercontent.com/33891828/218066318-5a909e50-2a17-46e6-b32f-684b2aa4b91f.png)

This function will check whether "%" is the beginning of an escape
character. Obviously, the "%" in the example (hello%mother.txt) is not
that. So, the function will return a error.

### Solution:
We can escape "treePath" by call "url.PathEscape()" function firstly.

### Screenshot:

![image](https://user-images.githubusercontent.com/33891828/218069781-1a030f8b-18d0-4804-b0f8-73997849ef43.png)

Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: sillyguodong <33891828+sillyguodong@users.noreply.github.com>
Co-authored-by: Andrew Thornton <art27@cantab.net>
2 years ago
..
agit Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
asymkey Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
attachment Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
auth refactor auth interface to return error when verify failure (#22119) (#22259) 2 years ago
automerge Add more linters to improve code readability (#19989) 3 years ago
comments Move issues related files into models/issues (#19931) 3 years ago
context Move almost all functions' parameter db.Engine to context.Context (#19748) 3 years ago
cron Refactor git command arguments and make all arguments to be safe to be used (#21535) 2 years ago
externalaccount Refactor auth package (#17962) 3 years ago
forms Revert unrelated changes for SMTP auth (#21767) (#21768) 2 years ago
gitdiff Refactor git command arguments and make all arguments to be safe to be used (#21535) 2 years ago
issue Fix issue not auto-closing when it includes a reference to a branch (#22514) (#22521) 2 years ago
lfs Prevent Authorization header for presigned LFS urls (#21531) 2 years ago
mailer Prevent multiple `To` recipients (#22566) (#22569) 2 years ago
markup Link mentioned user in markdown only if they are visible to viewer (#21554) 2 years ago
migrations Prevent duplicate labels when importing more than 99 (#22591) (#22598) 2 years ago
mirror Use proxy for pull mirror (#22771) (#22772) 2 years ago
org Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
packages refactor auth interface to return error when verify failure (#22119) (#22259) 2 years ago
pull Load issue before accessing index in merge message (#22822) (#22830) 2 years ago
release Revert "Do not send notifications for draft releases (#21451)" (#21594) 2 years ago
repository escape filename when assemble URL (#22850) (#22871) 2 years ago
task Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
user Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
webhook Fix wechatwork webhook sends empty content in PR review (#21762) (#22440) 2 years ago
wiki Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago