milter, postfix, app, domain: cite the source of what they rely on (assumptions part B)
Comments only, no behaviour changed. go-milter v0.4.1 (session.go: one session per connection, replaced after a non-continue reply; macros per stage), Postfix 3.7.11 (milter8.c, smtpd_check.c reject_auth_sender_login_mismatch(), mail_addr_find.c, showq_compat.c, mail_conf_time.c, mail_params.h), Cyrus SASL 2.1.28 (saslpasswd.c, plugins/sasldb.c: deleting a missing login is not an error), OpenDKIM 2.11.0~beta2 (opendkim-db.c, opendkim-genkey), Berkeley DB 5.3 db_dump, rspamd 3.11.0. Comments that claimed what the source denies are corrected (sasldb keeps the password as given, not hashed; an embedded newline is kept, not truncated; rspamd sorts symbols by absolute weight); fixtures say seen or composed. The sender check's From: parsing gets no citations: it is replaced by the port of OpenDKIM's dkim_mail_parse next. Contradictions left for their own commits: B-G5 cleanAddress, B-PS1 first key wins, B-PQ1 the forced-expire flag, B-PQ10/PQ11 Postfix's time units. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -31,6 +31,9 @@ func invalid(format string, args ...any) error {
|
||||
// applications to the panel. The store refuses such a pair as well
|
||||
// (idx_applications_login_nocase); a login imported from another instance is
|
||||
// not folded, since its SASL account and its client use it as it is.
|
||||
//
|
||||
// Postfix 3.7.11, src/smtpd/smtpd_check.c, reject_auth_sender_login_mismatch():
|
||||
// the SASL login is compared with each owner by strcasecmp_utf8().
|
||||
func foldLogin(login string) string {
|
||||
return strings.ToLower(login)
|
||||
}
|
||||
@@ -38,7 +41,9 @@ func foldLogin(login string) string {
|
||||
// validateLogin enforces a strict server-side whitelist for the SASL login
|
||||
// (security.md). It intentionally excludes '@': the login is stored in sasldb2,
|
||||
// where '@' separates the user from the realm, so allowing it would change the
|
||||
// account's identity. Client validation is never trusted.
|
||||
// account's identity. Client validation is never trusted. (Cyrus SASL 2.1.28,
|
||||
// common/plugin_common.c, _plug_parseuser(): a login is split into user and
|
||||
// realm at its first "@", for saslpasswd2's store and for the lookup alike.)
|
||||
//
|
||||
// The login is the one piece of user input that is passed to saslpasswd2 as a
|
||||
// command argument (never through a shell, security.md); this whitelist is what
|
||||
|
||||
Reference in New Issue
Block a user