Browse Source

Make the text/* part content a []byte

master
Simon Ser 4 years ago
parent
commit
a66ef1059b
No known key found for this signature in database GPG Key ID: FDE7BE0E88F5E48
2 changed files with 5 additions and 6 deletions
  1. +3
    -4
      plugins/base/routes.go
  2. +2
    -2
      plugins/base/sanitize_html.go

+ 3
- 4
plugins/base/routes.go View File

@@ -234,13 +234,12 @@ func handleGetPart(ctx *koushin.Context, raw bool) error {
}
}

var body string
var body []byte
if strings.HasPrefix(strings.ToLower(mimeType), "text/") {
b, err := ioutil.ReadAll(part.Body)
body, err = ioutil.ReadAll(part.Body)
if err != nil {
return fmt.Errorf("failed to read part body: %v", err)
}
body = string(b)
}

isHTML := false
@@ -263,7 +262,7 @@ func handleGetPart(ctx *koushin.Context, raw bool) error {
Mailboxes: mailboxes,
Mailbox: mbox,
Message: msg,
Body: body,
Body: string(body),
IsHTML: isHTML,
PartPath: partPathString,
MailboxPage: int(mbox.Messages-msg.SeqNum) / messagesPerPage,


+ 2
- 2
plugins/base/sanitize_html.go View File

@@ -4,7 +4,7 @@ import (
"github.com/microcosm-cc/bluemonday"
)

func sanitizeHTML(b string) string {
func sanitizeHTML(b []byte) []byte {
p := bluemonday.UGCPolicy()

// TODO: be more strict
@@ -14,5 +14,5 @@ func sanitizeHTML(b string) string {
p.AddTargetBlankToFullyQualifiedLinks(true)
p.RequireNoFollowOnLinks(true)

return p.Sanitize(b)
return p.SanitizeBytes(b)
}

Loading…
Cancel
Save