Handle error cases for user supplied regexp

This commit is contained in:
Bernhard Froehlich
2018-12-21 14:10:34 +00:00
parent e01895f25a
commit 72dad9fb70

20
main.go
View File

@@ -66,13 +66,17 @@ func senderChecker(peer smtpd.Peer, addr string) error {
return nil return nil
} }
re := regexp.MustCompile(*allowedSender) re, err := regexp.Compile(*allowedSender)
if err != nil {
log.Printf("allowed_sender invalid: %v\n", err)
return smtpd.Error{Code: 451, Message: "Bad sender address"}
}
if re.MatchString(addr) { if re.MatchString(addr) {
return nil return nil
} else {
return smtpd.Error{Code: 451, Message: "Bad sender address"}
} }
return smtpd.Error{Code: 451, Message: "Bad sender address"}
} }
func recipientChecker(peer smtpd.Peer, addr string) error { func recipientChecker(peer smtpd.Peer, addr string) error {
@@ -80,13 +84,17 @@ func recipientChecker(peer smtpd.Peer, addr string) error {
return nil return nil
} }
re := regexp.MustCompile(*allowedRecipients) re, err := regexp.Compile(*allowedRecipients)
if err != nil {
log.Printf("allowed_recipients invalid: %v\n", err)
return smtpd.Error{Code: 451, Message: "Bad recipient address"}
}
if re.MatchString(addr) { if re.MatchString(addr) {
return nil return nil
} else {
return smtpd.Error{Code: 451, Message: "Bad recipient address"}
} }
return smtpd.Error{Code: 451, Message: "Bad recipient address"}
} }
func authChecker(peer smtpd.Peer, username string, password string) error { func authChecker(peer smtpd.Peer, username string, password string) error {