Browse Source

fix possible panic

tags/v1.2.0-rc1
Unknwon 10 years ago
parent
commit
43b9b14520
1 changed files with 12 additions and 2 deletions
  1. +12
    -2
      modules/base/markdown.go

+ 12
- 2
modules/base/markdown.go View File

@@ -271,14 +271,24 @@ OUTER_LOOP:
tagName := token.Data
// If this is an excluded tag, we skip processing all output until a close tag is encountered.
if strings.EqualFold("a", tagName) || strings.EqualFold("code", tagName) || strings.EqualFold("pre", tagName) {
stackNum := 1
for html.ErrorToken != tokenizer.Next() {
token = tokenizer.Token()

// Copy the token to the output verbatim
buf.WriteString(token.String())
// If this is the close tag, we are done

if token.Type == html.StartTagToken {
stackNum++
}

// If this is the close tag to the outer-most, we are done
if token.Type == html.EndTagToken && strings.EqualFold(tagName, token.Data) {
break
stackNum--

if stackNum == 0 {
break
}
}
}
continue OUTER_LOOP


Loading…
Cancel
Save