Fix possible panic (#17694)

- The code will get the first and second character `link[{0,1]]`.
However in a rare case the `link` could have 1 character and thus the
`link[1]` will create a panic.
This commit is contained in:
Gusted 2021-11-18 13:25:56 +00:00 committed by GitHub
parent d1f5584039
commit 257b7171c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -108,12 +108,11 @@ func (repo *Repository) AvatarLink() string {
// avatarLink returns user avatar absolute link. // avatarLink returns user avatar absolute link.
func (repo *Repository) avatarLink(e db.Engine) string { func (repo *Repository) avatarLink(e db.Engine) string {
link := repo.relAvatarLink(e) link := repo.relAvatarLink(e)
// link may be empty! // we only prepend our AppURL to our known (relative, internal) avatar link to get an absolute URL
if len(link) > 0 { if strings.HasPrefix(link, "/") && !strings.HasPrefix(link, "//") {
if link[0] == '/' && link[1] != '/' { return setting.AppURL + strings.TrimPrefix(link, setting.AppSubURL)[1:]
return setting.AppURL + strings.TrimPrefix(link, setting.AppSubURL)[1:]
}
} }
// otherwise, return the link as it is
return link return link
} }