Make the text/* part content a []byte

This commit is contained in:
Simon Ser 2020-01-08 14:30:00 +01:00
parent 8d248bc32f
commit a66ef1059b
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
2 changed files with 5 additions and 6 deletions

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,

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)
}