From 8c49a2faf5acc725459e3904da2cd0c3908768a6 Mon Sep 17 00:00:00 2001 From: Silvan Jegen Date: Sat, 1 Jul 2023 21:26:26 +0200 Subject: plugins/base: fix nil pointer deref on invalid From or To address --- plugins/base/smtp.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/base/smtp.go b/plugins/base/smtp.go index 1809059..7bb5ccd 100644 --- a/plugins/base/smtp.go +++ b/plugins/base/smtp.go @@ -190,13 +190,21 @@ func (msg *OutgoingMessage) WriteTo(w io.Writer) error { } func sendMessage(c *smtp.Client, msg *OutgoingMessage) error { - addr, _ := mail.ParseAddress(msg.From) + addr, err := mail.ParseAddress(msg.From) + if err != nil { + return fmt.Errorf("parsing 'From' address failed: %v", err) + } + if err := c.Mail(addr.Address, nil); err != nil { return fmt.Errorf("MAIL FROM failed: %v", err) } for _, to := range msg.To { - addr, _ := mail.ParseAddress(to) + addr, err := mail.ParseAddress(to) + if err != nil { + return fmt.Errorf("parsing 'To' address failed: %v", err) + } + if err := c.Rcpt(addr.Address); err != nil { return fmt.Errorf("RCPT TO failed: %v (%s)", err, addr.Address) } -- cgit v1.2.3-59-g8ed1b