aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarLibravatar Silvan Jegen <[email protected]> 2023-07-01 21:26:26 +0200
committerLibravatarLibravatar Simon Ser <[email protected]> 2023-07-02 09:42:31 +0200
commit8c49a2faf5acc725459e3904da2cd0c3908768a6 (patch)
tree37ae5433652f2a6826f3666762b4b61d3492599d
parentab8b5f7678da886eb55216832ef47a730f5a4830 (diff)
downloadalps-8c49a2faf5acc725459e3904da2cd0c3908768a6.tar.gz
alps-8c49a2faf5acc725459e3904da2cd0c3908768a6.tar.bz2
alps-8c49a2faf5acc725459e3904da2cd0c3908768a6.zip
plugins/base: fix nil pointer deref on invalid From or To address
-rw-r--r--plugins/base/smtp.go12
1 files 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)
}