From 811055d4c0c7aceed98beb1d964ee486e0ce3c8b Mon Sep 17 00:00:00 2001 From: Mix Date: Wed, 14 Oct 2026 18:58:04 +0300 Subject: [PATCH] development: the rule's example cites the function Postfix really has The example comment named check_sender_login() and strcasecmp; Postfix 3.7.11 compares the login in reject_auth_sender_login_mismatch() with strcasecmp_utf8 (src/smtpd/smtpd_check.c:3913, 3936). Found by the heuristics inventory - the rule's own example was written from memory. Says where the Debian sources are fetched from and kept. Co-Authored-By: Claude Opus 5.5 --- docs/development.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/development.md b/docs/development.md index 6f4416d..ab8c6d6 100644 --- a/docs/development.md +++ b/docs/development.md @@ -227,10 +227,17 @@ what it relies on and where that is written, for the version the image runs (the Debian bookworm package, not upstream's head): ```go -// Postfix 3.7.11, src/smtpd/smtpd_check.c, check_sender_login(): -// the SASL login is compared with the sender map's owners by strcasecmp. +// Postfix 3.7.11, src/smtpd/smtpd_check.c, +// reject_auth_sender_login_mismatch(): the SASL login is compared with +// each owner in sender_login_maps by strcasecmp_utf8. ``` +The Debian sources of the image's versions are fetched with `apt-get source` +inside a `debian:bookworm` container (`postfix`, `opendkim`, `cyrus-sasl2`, +`supervisor`, `logrotate`); `dev/upstream/` (not in git) is where they are +kept for reading. Go modules are read in the module cache at the version +`go.mod` pins. + A document instead of source: its URL and section. Where neither answers the question, the comment says so and what was measured instead - "measured on the e2e stand, 2026-10-14: ..." - and a measurement is never written as if