From b701d8c0b04d88d5ddb26ed292d2e9897f8fec6c Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Sun, 6 Nov 2022 19:34:26 +0000 Subject: pkg/email: add support for Sender extraction --- pkg/email/parser.go | 13 +++++++++++++ pkg/email/parser_test.go | 11 +++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/pkg/email/parser.go b/pkg/email/parser.go index d7bf40a0f..2975d2de7 100644 --- a/pkg/email/parser.go +++ b/pkg/email/parser.go @@ -24,6 +24,7 @@ type Email struct { Subject string From string Cc []string + Sender string Body string // text/plain part Patch string // attached patch, if any Command Command // command to bot @@ -97,6 +98,17 @@ func Parse(r io.Reader, ownEmails []string) (*Email, error) { } } ccList = MergeEmailLists(ccList) + + sender := "" + senders, err := msg.Header.AddressList("Sender") + if err != nil { + if err != mail.ErrHeaderNotPresent { + return nil, err + } + } else if len(senders) > 0 { + sender = senders[0].Address + } + body, attachments, err := parseBody(msg.Body, msg.Header) if err != nil { return nil, err @@ -128,6 +140,7 @@ func Parse(r io.Reader, ownEmails []string) (*Email, error) { Subject: subject, From: from[0].String(), Cc: ccList, + Sender: sender, Body: bodyStr, Patch: patch, Command: cmd, diff --git a/pkg/email/parser_test.go b/pkg/email/parser_test.go index 88b7b4ad9..1593a22fd 100644 --- a/pkg/email/parser_test.go +++ b/pkg/email/parser_test.go @@ -642,6 +642,7 @@ d Subject: "Re: BUG: unable to handle kernel NULL pointer dereference in sock_poll", From: "\"bar\" ", Cc: []string{"bar@foo.com", "syzbot@syzkaller.appspotmail.com"}, + Sender: "syzkaller-bugs@googlegroups.com", Body: `On 2018/06/10 4:57, syzbot wrote: > Hello, > @@ -666,8 +667,9 @@ From: bar@foo.com #syz dup: BUG: unable to handle kernel NULL pointer dereference in corrupted `, Email{ - From: "", - Cc: []string{"bar@foo.com", "syzbot@syzkaller.appspotmail.com"}, + From: "", + Cc: []string{"bar@foo.com", "syzbot@syzkaller.appspotmail.com"}, + Sender: "syzkaller-bugs@googlegroups.com", Body: `#syz dup: BUG: unable to handle kernel NULL pointer dereference in corrupted `, @@ -683,8 +685,9 @@ From: bar@foo.com #syz fix: When freeing a lockf struct that already is part of a linked list, make sure to `, Email{ - From: "", - Cc: []string{"bar@foo.com", "syzbot@syzkaller.appspotmail.com"}, + From: "", + Cc: []string{"bar@foo.com", "syzbot@syzkaller.appspotmail.com"}, + Sender: "syzkaller-bugs@googlegroups.com", Body: `#syz fix: When freeing a lockf struct that already is part of a linked list, make sure to `, -- cgit mrf-deployment