aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authormrsdizzie <info@mrsdizzie.com>2020-12-03 21:01:42 -0500
committerGitHub <noreply@github.com>2020-12-04 03:01:42 +0100
commit3512c7e40f0b06f9f495a919e0d4925e5688e2da (patch)
tree4714b03490e9d7177c288d87105bbffffbef2933 /modules
parentc9effd5364caaed040f78b4298a34fbf98420fba (diff)
downloadgitea-3512c7e40f0b06f9f495a919e0d4925e5688e2da.tar.gz
gitea-3512c7e40f0b06f9f495a919e0d4925e5688e2da.zip
Fix crash in short link processor (#13839)
Fixes #13819
Diffstat (limited to 'modules')
-rw-r--r--modules/markup/html.go22
1 files changed, 12 insertions, 10 deletions
diff --git a/modules/markup/html.go b/modules/markup/html.go
index a6c6649cd3..586343fae1 100644
--- a/modules/markup/html.go
+++ b/modules/markup/html.go
@@ -651,16 +651,18 @@ func shortLinkProcessorFull(ctx *postProcessCtx, node *html.Node, noLink bool) {
// When parsing HTML, x/net/html will change all quotes which are
// not used for syntax into UTF-8 quotes. So checking val[0] won't
// be enough, since that only checks a single byte.
- if (strings.HasPrefix(val, "“") && strings.HasSuffix(val, "”")) ||
- (strings.HasPrefix(val, "‘") && strings.HasSuffix(val, "’")) {
- const lenQuote = len("‘")
- val = val[lenQuote : len(val)-lenQuote]
- } else if (strings.HasPrefix(val, "\"") && strings.HasSuffix(val, "\"")) ||
- (strings.HasPrefix(val, "'") && strings.HasSuffix(val, "'")) {
- val = val[1 : len(val)-1]
- } else if strings.HasPrefix(val, "'") && strings.HasSuffix(val, "’") {
- const lenQuote = len("‘")
- val = val[1 : len(val)-lenQuote]
+ if len(val) > 1 {
+ if (strings.HasPrefix(val, "“") && strings.HasSuffix(val, "”")) ||
+ (strings.HasPrefix(val, "‘") && strings.HasSuffix(val, "’")) {
+ const lenQuote = len("‘")
+ val = val[lenQuote : len(val)-lenQuote]
+ } else if (strings.HasPrefix(val, "\"") && strings.HasSuffix(val, "\"")) ||
+ (strings.HasPrefix(val, "'") && strings.HasSuffix(val, "'")) {
+ val = val[1 : len(val)-1]
+ } else if strings.HasPrefix(val, "'") && strings.HasSuffix(val, "’") {
+ const lenQuote = len("‘")
+ val = val[1 : len(val)-lenQuote]
+ }
}
props[key] = val
}