aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-07-05 21:29:41 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-07-05 21:29:41 +0200
commitf68d78b5a85be1b59350032055f60321fbbfc116 (patch)
treed121c3d11cdb8d8e003b157f7e92e75c61e8eb64
parent6fe1bcf384a34fdfc1704ff98ee5151a75d031a2 (diff)
pkg/email: fix bug in context extraction
Compare email addresses without full name.
-rw-r--r--pkg/email/parser.go6
-rw-r--r--pkg/email/parser_test.go6
2 files changed, 9 insertions, 3 deletions
diff --git a/pkg/email/parser.go b/pkg/email/parser.go
index f0297a588..ed90338a0 100644
--- a/pkg/email/parser.go
+++ b/pkg/email/parser.go
@@ -49,8 +49,14 @@ func Parse(r io.Reader, ownEmail string) (*Email, error) {
cc, _ := msg.Header.AddressList("Cc")
bugID := ""
var ccList []string
+ if addr, err := mail.ParseAddress(ownEmail); err == nil {
+ ownEmail = addr.Address
+ }
for _, addr := range append(cc, to...) {
cleaned, context, _ := RemoveAddrContext(addr.Address)
+ if addr, err := mail.ParseAddress(cleaned); err == nil {
+ cleaned = addr.Address
+ }
if cleaned == ownEmail {
if bugID == "" {
bugID = context
diff --git a/pkg/email/parser_test.go b/pkg/email/parser_test.go
index d05a597be..dd758462d 100644
--- a/pkg/email/parser_test.go
+++ b/pkg/email/parser_test.go
@@ -78,7 +78,7 @@ func TestAddRemoveAddrContext(t *testing.T) {
func TestParse(t *testing.T) {
for i, test := range parseTests {
t.Run(fmt.Sprint(i), func(t *testing.T) {
- email, err := Parse(strings.NewReader(test.email), "")
+ email, err := Parse(strings.NewReader(test.email), "bot <foo@bar.com>")
if err != nil {
t.Fatal(err)
}
@@ -133,7 +133,7 @@ var parseTests = []struct {
Message-ID: <123>
Subject: test subject
From: Bob <bob@example.com>
-To: syzbot <bot@example.com>
+To: syzbot <foo+4564456@bar.com>
Content-Type: text/plain; charset="UTF-8"
text body
@@ -141,10 +141,10 @@ second line
#syzbot command arg1 arg2 arg3
last line`,
&Email{
+ BugID: "4564456",
MessageID: "<123>",
Subject: "test subject",
From: "\"Bob\" <bob@example.com>",
- Cc: []string{"\"syzbot\" <bot@example.com>"},
Body: `text body
second line
#syzbot command arg1 arg2 arg3