fix: return error if parsing header fails GODT-502

This commit is contained in:
James Houlahan
2020-06-19 11:06:43 +02:00
committed by Jakub
parent 7724ca3996
commit 7301e5571c
4 changed files with 16 additions and 4 deletions

View File

@ -24,6 +24,7 @@ import (
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"net/mail"
@ -32,6 +33,7 @@ import (
"strings"
pmcrypto "github.com/ProtonMail/gopenpgp/crypto"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/openpgp/packet"
)
@ -211,9 +213,13 @@ func (m *Message) UnmarshalJSON(b []byte) error {
if raw.Header != "" && raw.Header != "(No Header)" {
msg, err := mail.ReadMessage(strings.NewReader(raw.Header + "\r\n\r\n"))
if err == nil {
m.Header = msg.Header
if err != nil {
logrus.WithField("rawHeader", raw.Header).Trace("Failed to parse header")
return fmt.Errorf("failed to parse header of message %v: %v", m.ID, err.Error())
}
m.Header = msg.Header
} else {
m.Header = make(mail.Header)
}
return nil